Forum: Haus & Smart Home EMS > Adapter > NetIO > Raspi


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Karl M. W. (charlie-w)


Angehängte Dateien:

Lesenswert?

Der Buderus EMS-Bus wird (hier) bisher in drei Threads:
Beitrag "Logamatic 2107 Schnittstelle"
Beitrag "Buderus EMS-"Gateway" mit PIC18F / Sammelbestellung"
Beitrag "Faktensammlung Buderus EMS"

und in Ingo.F's Wiki: http://ems-gateway.myds.me/dokuwiki/doku.php
detailliert beschrieben.

Im Wiki findet sich auch eine Anleitung, wie man mit Hilfe von
die Protokolle des EMS-Bus auswerten und visualisieren kann:
http://ems-gateway.myds.me/dokuwiki/doku.php?id=wiki:ems:net_io

Die Kosten des Projektes belaufen sich, Stand 12.2013, auf ca.:
Adapterplatine   6,00 €     selbst gefertigt
AVR-NetIO       20,00 €     Pollin Bausatz
ATmega644P       5,00 €     Ersatz für ATmega32
RaspberryPi     39,00 €     Modell B
SD-Card 16 GB   10,00 €     für Raspi
Netzteil         5,00 €     5V, 1.5A
Sonstiges        5,00 €     Kleinteile, etc.
--------------------------------
Summe           90,00 €

Die beigefügten Bilder zeigen auszugsweise, wie sich die Auswertung im 
Browser darstellen kann.

Dieser neue Thread dient zur Entzerrung der EMS-Bus Hardware Thematik 
und beschäftigt sich ausschließlich mit dem im Wiki vorgestellten 
Projekt: Adapterplatine > AVRNetIO > RaspberryPi.

Bitte alle allgemeinen Hinweise und Anfragen zum EMS-Bus weiterhin 
posten in: Beitrag "Faktensammlung Buderus EMS".

von Thomas Ihmann (Gast)


Lesenswert?

Gibt es die Möglichkeit den Adapter direkt an den Raspberry 
anzuschließen. Der Raspberry hat doch auch eine UART Schnittstelle. 
Könnte man den AVR Net-io so einsparen ? Bzw. ist vielleicht auch ein 
Arduino denkbar ?

von Thomas Ihmann (Gast)


Lesenswert?

Gibt es zum Adapter nach Niffkos Schaltplan irgendwo eine Bauteilliste ? 
Vielen Dank

von Karl M. W. (charlie-w)


Lesenswert?

Thomas Ihmann schrieb:
> Könnte man den AVR Net-io so einsparen

Wenn man den Framer für den Raspi umschreibt sollte das imho möglich 
sein.

> Bauteilliste

Der Blackboard-Plan hat iirc eine Liste. Aber bei den "3" Bauteilen?!

von Niffko _. (niffko)


Lesenswert?

charlie W. schrieb:
> Wenn man den Framer für den Raspi umschreibt sollte das imho möglich
> sein.

Na ich weiß nicht. Die Datentelegramme werden ja durch Framing errors 
getrennt.
Sollte die Himbeere einen Framing error überhaupt detektieren können, so 
wird dies wahrscheinlich nicht schnell genug vonstattengehen.
Es muss ja nicht gleich ein AVRNetIO sein, aber um einen kleinen µC mit 
entsprechender Firmware kommt man hier m.E. nicht herum.

//Niffko

von Gerd B. (bertr2d2) Benutzerseite


Lesenswert?

Oder gleich ein Beaglebone Black:

Adapterplatine    6,00 €     selbst gefertigt
BeagleBone Black 45,00 €
Netzteil          5,00 €     5V, 1.5A
Sonstiges         5,00 €     Kleinteile, etc.
--------------------------------
Summe            61,00 €

und packt den EMS-Code in das PRUSS (Programmable Realtime Unit 
Subsystem http://elinux.org/Ti_AM33XX_PRUSSv2). Das sind zwei 200MHz 
Kerne, die genau für solche Fälle geschaffen sind.
Nebenbei ist der Beaglebone deutlich flotter als das RPi und verbraucht 
auch noch weniger Strom ...

: Bearbeitet durch User
von Christian S. (chrschnitt)


Lesenswert?

Hallo zusammen,

ich habe mir jetzt 
http://ems-gateway.myds.me/dokuwiki/doku.php?id=wiki:ems:net_io diverse 
Male durchgelesen und muss sagen:
Den Großteil im Abschnitt "Adapter" und "NetIO" verstehe ich nicht.
Den Großteil im Abschntt "Raspberry Pi" aber sehr wohl. Wenn jemand in 
der Lage ist mich mit einer entsprechenden Hardware auszustattem 
(Raspberry Pi habe ich selbst), würde ich sehr gern ein natives 
openhab-Binding dafür entwickeln. Also nicht auf Dannys Code aufsetzen, 
sondern direkt aus dem Java-Code die Anbindung vorzunehmen.

Ich bin aber leider nicht in der Lage, mir so eine Platine 
zusammenzuschustern. Ihr sollt das natürlich auch nicht kostenlos 
machen. ;-)

Wenn mich da jemand unterstützen kann, wäre ich sehr dankbar.

von Bgewehr (Gast)


Lesenswert?

Hallo!

Ich habe die Anleitung für den RaspberryPi verfolgt und hänge an der 
Ausführbarkeit meines Daemons:

pi@raspberrypi ~ $ sudo service ems-collector restart
[warn] Stopping EMS collector daemon: collectord already stopped 
(warning).
[....] Starting EMS collector daemon: collectordterminate called after 
throwing an instance of 
'boost::exception_detail::clone_impl<boost::exception_detail::error_info 
_injector<boost::program_options::too_many_positional_options_error>  >'
  what():  too many positional options
Aborted
 failed!

Wer kann mir dazu etwas helfen?

Vielen Dank!

von Bgewehr (Gast)


Lesenswert?

Ah, ok, das ging, aber jetzt komme ich wieder nicht weiter. Framing 
scheint das Zauberwort zu sein, ich hänge mit USB tty UART direkt am 
Raspberry, geht das überhaupt?

IO: Got bytes 0x80
IO: Got bytes 0xff
IO: Got bytes 00
IO: Got bytes 00
IO: Got bytes 00
IO: Got bytes 00
IO: Got bytes 00
IO: Got bytes 00
IO: Got bytes 00
IO: Got bytes 00
IO: Got bytes 00
IO: Got bytes 00
IO: Got bytes 00
IO: Got bytes 00
IO: Got bytes 0x80
IO: Got bytes 0xf0
IO: Got bytes 00
IO: Got bytes 00
IO: Got bytes 00
IO: Got bytes 0xf8
IO: Got bytes 00
IO: Got bytes 00
IO: Got bytes 0x3c
IO: Got bytes 00
IO: Got bytes 0xf8
IO: Got bytes 00
IO: Got bytes 00
IO: Got bytes 0xe0
IO: Got bytes 00
IO: Got bytes 00
IO: Got bytes 00
IO: Got bytes 00
IO: Got bytes 00
IO: Got bytes 0xc0
IO: Got bytes 0xfc
IO: Got bytes 00
IO: Got bytes 0xee
IO: Got bytes 00
IO: Got bytes 00
IO: Got bytes 00
IO: Got bytes 0xc0
IO: Got bytes 0x2
IO: Got bytes 00
IO: Got bytes 00
IO: Got bytes 00
IO: Got bytes 00

von Bernd G. (bernd_g)


Lesenswert?

Hallo,

ich habe im Projekt gelesen, dass man den atmel32 gegen den atmel64
austauschen muss, weil man für das Projekt eben zwei solche
Schnittstellen braucht.

Mal nachgefragt: warum eigentlich?

Gruß, Bernd

von Karl M. W. (charlie-w)


Lesenswert?

Hi Bernd,

Bernd Gewehr schrieb:
> den atmel32 gegen den atmel64 austauschen

Mt 7,8 "... wer suchet, der findet ..."

Beitrag "Re: Logamatic 2107 Schnittstelle" (Letzter Absatz.)

Gruß aus der Wetterau
Karl M.

von Flobo (Gast)


Lesenswert?

Das ist der ATmega644P-20PU oder ?

von Karl M. W. (charlie-w)


Lesenswert?

Flobo schrieb:
> Das ist der ATmega644P-20PU

Korrekt!

von Christian S. (chrschnitt)


Lesenswert?

Gibt es eigentlich schon einen Java-Client-Code? Oder existiert als 
Client nur der C++ Code von Danny: 
https://github.com/maniac103/ems-collector/tree/master/collector

von Flobo (Gast)


Lesenswert?

Gibts ne möglichkeit das jemand ein fertiges Hex - File anhängt ?
Das wär Super :)

von Karl M. W. (charlie-w)


Lesenswert?

Flobo schrieb:
> ein fertiges Hex - File

http://ems-gateway.myds.me/dokuwiki/doku.php?id=wiki:ems:net_io#hexfile

Erbitte Hinweis auf Funktionalität (habe den Hex selber nicht gecheckt).

von Bernd Gewehr (Gast)


Lesenswert?

Hallo,

habe nun fast alles beisammen. Wenn ich den Original Atmel im Net-IO 
habe, dann klappt die serielle Kommunikation mit getip und so sofort.

Setze ich den 644P ein, kommt gar nichts.

Welchen Schritt habe ich übersehen?

Danke und Gruß
Bernd

von Karl M. W. (charlie-w)


Lesenswert?

Bernd Gewehr schrieb:
> Setze ich den 644P ein, kommt gar nichts.

Welche Firmware ist auf dem ATmega32, welche auf dem ATmega644P?

Hinweise unter:
http://ems-gateway.myds.me/dokuwiki/doku.php?id=wiki:ems:net_io#netio
beachtet?

Wenn Du Deine Konfiguration genauer beschreibst, kann Dir besser 
geholfen werden. ;-)

Gruß aus der Wetterau
Karl M.

: Bearbeitet durch User
von Bernd Gewehr (Gast)


Lesenswert?

Keine Firmware bisher - habe den 644 so wie er kam in den Sockel 
gesteckt.

Ich fürchte ich muss noch einen ISP Programmer kaufen, um eine Firmware 
zu flashen, oder?

von Karl M. W. (charlie-w)


Lesenswert?

Bernd Gewehr schrieb:
> habe den 644 so wie er kam in den Sockel gesteckt.
ok, dann ist folgendes erklärt
> Setze ich den 644P ein, kommt gar nichts.

> ISP Programmer kaufen
oder sowas basteln: http://www.franksteinberg.de/4TAP.htm
oder sowas: http://s-huehn.de/elektronik/avr-prog/avr-prog.htm
oder sowas kaufen: 
http://www.pollin.de/shop/dt/MTY5OTgxOTk-/Bausaetze_Module/Bausaetze/ATMEL_Evaluations_Board_Version_2_0_1_Bausatz.html
oder ...

von Michael M. (moosy)


Lesenswert?

Hallo miteinander,
ich lese schon seit geraumer Zeit mit und habe bislang vorwiegend von 
der Community profitiert. Ich habe erfolgreich das Pollin-NETIO zum 
Laufen gebracht und mittels Adapterplatine aus dem Wiki an den EMS-Bus 
meiner GB132 Therme mit RC35 (1 ungemischter Heizkreis Fußbodenheizung, 
1 Warmwasserspeicher mit Zirkulation) angebunden. Dannys ems-collector 
läuft auf meinem Hausserver (Selbstbau, openSuSE Linux).

Jetzt ist es also langsam Zeit auch ein wenig was beizutragen.

Als erstes habe ich mal im EMS-Wiki bei den Telegrammen die Dinge 
ergänzt, die ich beim Spielen mit meiner Therme herausgefunden habe 
(u.a. Wartungsdaten, Funktionstest, ein paar Detailinfos). Ab sofort auf 
Ingos Wiki :).

Als nächstes habe ich Dannys ems-collector-Software ein wenig ergänzt, 
so dass sie nun fast alle im RC35 verfügbaren Funktionen abdeckt. Danny 
prüft den Code gerade :).

Und schließlich habe ich ein PHP-Webinterface als Frontend gebastelt, 
das so ziemlich alles abdeckt, was meine Therme kann. Sobald der 
aktualisierte ems-collectord freigegeben ist, werde ich die Seiten zur 
Verfügung stellen (vorher machts keinen Sinn, da die Seiten zum 
ems-collector passen müssen).

Aber wie gesagt, zunächst mal das aktualisierte Wiki :).

Herzliche Grüße und nochmals einen RIESENDANK an alle, die durch ihre 
Beiträge all das erst möglich gemacht haben,

Moosy

von Bernd G. (bernd_g)


Lesenswert?

Hallo, Moosy,

das klingt gut!

Im GitHub kann ich aber keinen Pull-Request finden, oder bin ich hier 
falsch?

https://github.com/maniac103/ems-collector

Gruß, Bernd

von Flobo (Gast)


Lesenswert?

Also,

- NetIO zusammengebaut
- 644 P eingebaut
- 9V angeschlossen
- ATMEL ISP MKII besorgt
- Flachbandkabel - Adapter gebastelt
- Mit AVR Studio den 644 P mit dem Hex aus dem Wiki geflasht
- IP / Mac vergeben
- Ethersex HP geht auf

Wunderbar .. hat Spaß gemacht xD

... jetzt kommt der Raspberry :) ist der eigentlich unbedingt notwendig 
?

von Flobo (Gast)


Lesenswert?

Jetzt noch mal ne ganz dumme Frage, ich komm grade nicht drauf :)

EMS Bus <=> Selbstgebastelte Platine <=> 10pol. Stecker <=> 10.pol 
Stecker <=> AVR Net IO <=> RS232 <=> USB <=> Raspberry Pi

Stimmt das in etwa ?

von Karl M. W. (charlie-w)


Lesenswert?

> - 9V angeschlossen
Stecker-Schaltnetzteil mit 5V/1A an der Buchse „J6“ ist energiesparender 
und Deine Bude überheizt nicht ;)

> - Mit AVR Studio den 644 P mit dem Hex aus dem Wiki geflasht
> - IP / Mac vergeben
> - Ethersex HP geht auf
Dann scheint der HEX ok. Danke für die Rückmeldung! :)

> Raspberry :) ist der eigentlich unbedingt notwendig
Auf dem läuft der collector, der die Daten vom EMS absammelt und der 
lighty o.ä., der Dir die Daten via http serviert. Aber es sollte auch 
mit jedem anderen (Linux)Server klappen.

> Stecker <=> AVR Net IO <=> RS232 <=> USB <=> Raspberry Pi
... <=> AVR Net IO <=> ethernet <=> Raspberry Pi (orwhateveryouwant)

von Michael M. (moosy)


Angehängte Dateien:

Lesenswert?

@Bernd

Nein, da bist Du völlig richtig. Ich habe Danny als Maintainer meine 
Erweiterungen zukommen lassen, damit der die Aufnahme in das offizielle 
Release prüfen kann. Da das erst vor ein paar Tagen war, ist er wohl 
noch nicht dazugekommen.

Ich habe den sourcecode meiner aktuellen "Arbeitsversion" mal angehängt. 
Es handelt sich hierbei nur um das collector-Verzeichnis, da ich an den 
anderen nichts geändert habe.

Ich bitte um konstruktive Kritik :).
Achja: Wenn jemand meinen Programmierstil etwas seltsam findet, dann 
liegt das daran, dass ich kein C++ kann ;)

Viele Grüße
Moosy

P.S: Diese Version ist work-in-progress und von daher mit Vorsicht zu 
genießen, auch wenn sie bei mir soweit ich das beurteilen kann klaglos 
funktioniert (GB132 mit RC35).

Zur Orientierung mal die Hilfe (das Prompt und die Begrüßung gibts mit 
der neuen Startoption -i bzw. --enable-cli):

diego:/home/programming/Heizung/ems-collector # telnet localhost 7777
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

Buderus EMS interface extended edition
(c) 2014 by Danny Baumann, Michael Moosbauer

For help type 'help'.

ems> help
Buderus EMS interface extended edition
(c) 2014 by Danny Baumann, Michael Moosbauer

Available commands (help with '<command> help'):
  ww <subcommand>
    -- hot water subsystem
  hk[1|2|3|4] <subcommand>
    -- heating subsystem
  uba <subcommand>
    -- the heater itself
  getversion <deviceid>
  totalhours
  getcontactinfo [1|2]
  setcontactinfo [1|2] <text>
  geterrors  geterrors2  geterrors3
  emsqry [0xtarget 0xtype offset len]
    -- do custom EMS query

  emscmd [0xtarget 0xtype offset data]
    -- write custom value to EMS device (CAUTION!!)

ems> uba help
Available subcommands:
antipendel <minutes>
hyst [on|off] <kelvin>
getstatus
getmaintenance
setmaintenance [ off | byhour <hours/100> | bydate DD-MM-YYYY ]
isinmaintenance
pumpdelay <minutes>
pumpmodulation <minpercent> <maxpercent>
testmode <brennerpercent> <pumpepercent> <3w-vent:0=heat,1=ww> 
<zirkpump:0=off,1=on>
   (use at own risk! repeat command periodically.)
ems> hk1 help
Available subcommands:
mode [day|night|auto]
daytemperature <temp>
nighttemperature <temp>
holidaytemperature <temp>
getholiday
holidaymode <start:DD-MM-YYYY> <end:DD-MM-YYYY>
getvacation
vacationmode <start:DD-MM-YYYY> <end:DD-MM-YYYY>
partymode <hours>
pausemode <hours>
minouttemp <temp>
building [leicht|mittel|schwer]
enabledamping [on|off]
minheatflowtemp <temp>
maxheatflowtemp <temp>
redmode [Abschalt|Reduziert|Raumhalt|Aussenhalt]
refinput [Raum|Aussen]
refinputvac [Raum|Aussen]
maxroomeffect <temp>
designtemp <temp>
schedoptimizer [on|off]
frostmode [off|Raum|Aussen]
tempoffset <temp>
frosttemp <temp>
summertimetemp <temp>
stopnighttemp <temp>
nightdoredtemp <temp>
getstatus
getstatus2
getstatus3
getstatus4
getpartypause
actschedule
chooseschedule 
[Familie|Morgen|Frueh|Abend|Vorm|Nachm|Mittag|Single|Senioren|Eigen1|Eig 
en2]
getschedule [1|2]
schedule [1|2] <index> unset
schedule [1|2] <index> [MO|TU|WE|TH|FR|SA|SU] HH:MM [ON|OFF]

ems> ww help
Available subcommands:
mode [on|off|auto]
temperature <temp>
limittemp <temp>
thermdesinfect mode [on|off]
thermdesinfect day 
[monday|tuesday|wednesday|thursday|friday|saturday|sunday]
thermdesinfect temperature <temp>
thermdesinfect hour <hour>
getschedule [w|z]
getstatus
getstatus2
getstatus3
chooseschedule [Eigen1|Heizkreis]
schedule <index> unset
schedule <index> [MO|TU|WE|TH|FR|SA|SU] HH:MM [ON|OFF]
zirkpump mode [on|off|auto]
zirkpump count [1-6, 7=alwayson]
zirkpump chooseschedule [Eigen1|Heizkreis]
zirkpump schedule <index> unset
zirkpump schedule <index> [MO|TU|WE|TH|FR|SA|SU] HH:MM [ON|OFF]
loadled [on|off]
loadonce
canloadonce

ems>

: Bearbeitet durch User
von Karl M. W. (charlie-w)


Lesenswert?

Michael Moosbauer schrieb:
> Ich bitte um konstruktive Kritik :).

Grüß Gott Michel,

- Moosbauer klingt nach Südbayern, ich hoffe, die Anrede passt. ;)

Gute Arbeit, soweit ich das beurteilen kann!
Dann wollen wir mal auf Danny warten ... oder Du baust Deinen eigenen 
Fork!?

Was ich noch interessant fände, wäre die Status-/Fehlermeldungen zu 
vertexten. Etwa nach Muster:
-H 200 = Gerät im Heizbetrieb
3P 216 = Das Gebläse dreht nicht schnell genug
etc ...
Da könnte man in einer Tabelle alle relevanten Meldungen anlegen und 
sähe anschließend Klartext. Hat jemand eine Idee zur Umsetzung, oder 
findet Ihr das langweilig?

Wünsche weiterhin frohes Schaffen!

Gruß aus der Wetterau
Karl M.

von Michael M. (moosy)


Angehängte Dateien:

Lesenswert?

Hi Karl,

ja, komme aus Puchheim :).
Ich habe alle (fast) Statusmeldungen aus der Buderus-Serviceanleitung 
extrahiert und in mein Webinterface eingebaut (siehe im Anhang 2 
Ausschnitte aus meiner Web-Bedienoberfläche).

Aber veröffentlichen kann man das ja wohl nicht, da doch Buderus die 
Urheberrechte an seinen Textschnipseln hat, oder?

Viele Grüße
Moosy

P.S: Wer findet den "Fehler" in der Anzeige, der davon kommt, dass ich 
extra für Euch die Anlage in den Tagbetrieb geschaltet habe und dann zu 
früh den Screenshot gemacht habe?

: Bearbeitet durch User
von Niffko (Gast)


Lesenswert?

Michael Moosbauer schrieb:
> Wer findet den "Fehler" in der Anzeige ...

Stehende Kesselpumpe bei laufendem Brenner wäre nicht so gut ... ;-)


//Niffko

von Flobo (Gast)


Lesenswert?

Danke Charlie W. :) .. sorry ich versuch mich gerade da etwas 
reinzudenken.

Gut wir haben eine Ethernet Verbindung zb. über einen Switch zwischen 
AVR - NetIO und Raspberry.

Jetzt mal meine Frage .. was wird an Daten zwischen Rasp und NETIO 
ausgetauscht ? Welches Protokoll ?

Nächste Frage :

# Other options -- db-user, db-pw, rate-limit (s) to write to db, target
OPTIONS="-u ems -p password -r 60 tcp:192.168.xxx.xxx:7950"

Muss hier die Lokale IP Adresse des Rasp rein oder die des NET IO ?

Danke !

von Bernd G. (bernd_g)


Lesenswert?

Hallo, Flobo,

ich bin an derselben Stelle des Fortschritts ;-)

Die IP ist die des Net-IO, der Port 7950 ist im Ethersex fest 
vorgegeben, die u und p sind die MySQL Userdaten des Raspi für den 
ems-collector daemon, der auf dem Raspi laufen muss. Soweit mein 
Verständnis.

Ich bekomme derzeit noch keine zuverlässigen Daten und frage mich, ob 
das an den ca. 10m Telefonkabel zwischen dem Pegelwandler und der 
Heizung liegen kann...

Ich habe den Pegelwandler an PIN 1 (TX) und PIN 9 (GND) des EXT Ports am 
Net-IO angeschlossen, aber es passiert nix sinnvolles. (Probehalber an 
PIN 2 auch nicht)

Mein Pegelwandler an einem TTLUSBUART liefert einen kontinuierlichen 
Datenstrom von Unsinn, aber immerhin.

Kann mir an dieser Stelle jemand weiterhelfen?

Danke und Gruß

Bernd

von Flobo (Gast)


Lesenswert?

Naja :) nun habe ich ein weiteres Problem xD
Wenn ich nun versuche den Daemon zu starten werde ich mit folgender 
Meldung begrüßt :

service ems-collector start
[....] Starting EMS collector daemon: collectordterminate called after 
throwing an instance of 
'boost::exception_detail::clone_impl<boost::exception_detail::error_info 
_injector<boost::program_options::invalid_command_line_syntax>  >'
  what():  required parameter is missing in 'config-file'
Aborted
 failed!

Hab mich Streng an die Anleitung gehalten :( was könnte das sein ?

von Bernd G. (bernd_g)


Lesenswert?

Hast Du das hier mal durchgesehen?

Config-File und insbesondere Hinweise auf die PID?

Gruß, Bernd

von Bernd G. (bernd_g)


Lesenswert?


von Bernd G. (bernd_g)


Lesenswert?

Ich hab mit Erfolg den 4-Teile Programmer nachgebaut.

Noch nie habe ich nur 40,- Ct an der Conrad-Kasse bezahlt, tolles Gefühl 
;-))

Danke, das hat schon mal funktioniert!

von Bernd G. (bernd_g)


Lesenswert?

Hier taucht nochmal ne Frage zum Ethersex auf:

> Die Portbelegung des ATmega644p stellt sich jetzt wie folgt dar:
> PD2 = RX
ja, PD2 ist ja auch der Empfänger.

Allerdings taucht der nicht im Pinning des netio.4 auf?
Da würde ich mal auf Ethersex nachfragen.
Irgendwie fehlt mir da ein:
ifdef(`conf_EMS', `
  pin(EMS_UART_RX, PD2)
')

Charlie, sagt Dir das was?

Gruß, Bernd

von Bernd G. (bernd_g)


Lesenswert?

Zitat aus dem Wiki:

Vor dem Kompilieren sind noch folgende Änderungen in 
“./pinning/hardware/netio.4“ vorzunehmen:

ifdef(`conf_ONEWIRE', `dnl
  /* onewire port range */
  ONEWIRE_PORT_RANGE(PD5, PD5)
')dnl

ifdef(`conf_EMS', `
  pin(EMS_UART_TX, PD3)
')
ifdef(`conf_STATUSLED_EMS_TX', `
  pin(STATUSLED_EMS_TX, PD4, OUTPUT)
')
ifdef(`conf_STATUSLED_EMS_RX_OK', `
  pin(STATUSLED_EMS_RX_OK, PD6, OUTPUT)
')
ifdef(`conf_STATUSLED_EMS_RX_FAIL', `
  pin(STATUSLED_EMS_RX_FAIL, PB0, OUTPUT)
')

Nun meine Situation:
“./pinning/hardware/netio.4“ gibt es nicht, aber
“./pinning/hardware/netio.m4“, also nehme ich diese

ifdef(`conf_ONEWIRE', `dnl
  /* onewire port range */
  ONEWIRE_PORT_RANGE(PD5, PD5)
')dnl

ifdef(`conf_EMS', `
  pin(EMS_UART_RX, PD2)
')
ifdef(`conf_EMS', `
  pin(EMS_UART_TX, PD3)
')
ifdef(`conf_STATUSLED_EMS_TX', `
  pin(STATUSLED_EMS_TX, PD4, OUTPUT)
')
ifdef(`conf_STATUSLED_EMS_RX_OK', `
  pin(STATUSLED_EMS_RX_OK, PD6, OUTPUT)
')
ifdef(`conf_STATUSLED_EMS_RX_FAIL', `
  pin(STATUSLED_EMS_RX_FAIL, PB0, OUTPUT)
')

Kann mir das jemand bestätigen?

(Gelöst wurde mein Problem dadurch jedenfalls nicht... ich erhalte nach 
wie vor keine Daten.)

: Bearbeitet durch User
von Karl M. W. (charlie-w)


Lesenswert?

Bernd Gewehr schrieb:
> “./pinning/hardware/netio.4“ gibt es nicht, aber
> “./pinning/hardware/netio.m4“, also nehme ich diese

Schreibfehler von mir, sorry, ist korrigiert.

@Bernd:
Du hast Post.

@Flobo:
Zeig mal Deine
  1. /etc/default/ems-collector
  2. /etc/init.d/ems-collector
oder klappt's mittlerweile?

@Moosy:
Tolle Wurst! Du hast ja schon alles erledigt, was ich mir noch 
vorgenommen hatte. Wieso hast Du Bedenken, das öffentlich zu machen. Ist 
doch Dein Werk!

von Michael M. (moosy)


Lesenswert?

Abend :)

@Bernd: Hast Du eigentlich die Fuses beim Atmega richtig gesetzt? Ich 
musste das trotz Einstellung im make menuconfig noch von Hand machen.
Vorher hatte ich das gleiche Symptom wie Du: Ethersex Webseite geht, 
Pins lassen sich schalten, aber keine Daten. Vermutlich weil wegen 
falscher Taktrate das Timing hinten und vorne net stimmte.

Brenn mal Deine Fuses auf
  (e7) Fuse Low Byte (FLB)
  (dc) Fuse High Byte (FHB)
  (ff) Extended Fuse Byte (EFB)

Danach ging's bei mir ab wie ein Zäpfchen g

@Charlie W: Ja, die PHP-Seiten werd ich demnächst zur Verfügung stellen 
(wenn ich den Code soweit separiert habe, dass er auch wo anders als bei 
mir laufen sollte). Ich hab nur ein wenig Bedenken wegen meiner 
Zuordnungsdatei Fehlercode -> Text... Die besteht zu 90% aus Text aus 
dem Servicemanual :)

von Bernd G. (bernd_g)


Lesenswert?

Hallo, Moosy,

danke, super Tip, meine Fuses waren tatsächlich ganz anders gesetzt, 
obwohl ich die schon in make menuconfig sauber angegeben hatte. Hab ich 
korrigiert.

Dennoch, mein EMS2TTL-Pegelwandler schafft es nicht, dem  uC Signale zu 
servieren, die er als seriellen Datenstrom verarbeiten kann.

Hat den der 644P an seinem zweiten UART keine TTL-Pegel?

Oder ist bei einer Leitungslänge von ca. 8-10 m Telefonkabel sowieso 
kein zuverlässiges Signal mehr zu erwarten?
(Obwohl: der Raspi mit USBTTLUART schön brav kontinuierlichen Unsinn 
empfängt...)

Ich traue mir den Aufbau der Schaltung von NEFFKO nicht wirklich zu, 
kann auch kein Blackboard File öffnen (warum eigentlich kein einfaches 
Bild?), gibt es evtl. lötwillige Helfer hier im Forum?

Danke und Gruß, Bernd

von Florian B. (Firma: Framelabs GbR) (flobo)


Lesenswert?

Servus,

ich kann dir so eine zusammenlöten, ich probiere momentan auch mit dem 
EMS Bus Anschluss selber rum. Komme allerdings erst nächste Woche zum 
Testen des ganzen Konstrukts da die Heizung nicht bei mir Voort ist.

Kann mir jemand mal ein Bild posten in dem ersichtlich ist, wo genau man 
an dem EMS Bus bei der Heizung anschließen muss ?

Solange es dir nichts ausmacht das das ding auf ner Lochrasterplatine 
bestückt ist :) .. ich arbeite allerdings bei erfolgreichen Tests mit 
einem Freund zusammen an einem geätzten Platinenlayout.

Ich denke ich werde diese dann auch zum Kauf anbieten :) ich muss mich 
momentan nur mit dem rechtlichen diesbezüglich auseinandersetzen.
Aber soweit ich weiß unterlegen Protokolle nicht dem Patentrecht, somit 
sollte es machbar sein einen EMS Pegelwandler feilzubieten.

Grüße
Flobo

: Bearbeitet durch User
von Bernd G. (bernd_g)


Lesenswert?

@Flobo: Schau mal hier 
http://www.tekom.de/uploads/media/212/Anleitung_Buderus_21222.pdf auf 
Seite 35 Mitte, da ist die Klemmleiste. RC ist EMS.

von Karl M. W. (charlie-w)


Lesenswert?

@Bernd:

> Hat den der 644P an seinem zweiten UART keine TTL-Pegel?
5V != RS-232

> ca. 8-10 m Telefonkabel
Dürften überhaupt kein Problem darstellen. Bei mir ist es mehr.

@Flobo:

> wo genau man an dem EMS Bus bei der Heizung anschließen muss ?
Entweder:
1. Am Gerät. Orange Buchse, Aufdruck "RC" (bei meinem GB162).
2. Am RCxx.

> Pegelwandler im geätzten Platinenlayout
Sehr fein!

Gruß aus der Wetterau
Karl M.

von Bernd G. (bernd_g)


Lesenswert?

Mal was anderes: Welche NetMask soll am PC verwendet werden, um das 
frisch geflashte Net-IO unter 192.168.0.0 anzusprechen, damit man mit 
ECMD die IP setzen kann?

von Florian B. (Firma: Framelabs GbR) (flobo)


Lesenswert?

Servus,

ich habe die 255.255.255.0 verwendet, einfach in den Browser eingeben, 
kein Gateway oder DNS.
Es sollte dann als Bestätigung ein herzliches OK kommen.

Die MAC Adresse nimmst du von dem nicht mehr verwendeten ATmega32.

von Michael M. (moosy)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

um die Wartezeit zu verkürzen habe ich jetzt doch einmal einen fork auf 
den ems-collector angelegt. Erreichbar unter

https://github.com/moosy/ems-collector/ .

Dazu passend habe ich die aktuelle Version meiner PHP-Skripte 
hochgeladen. Die Buderus-Servicemeldungen habe ich neu formuliert, um 
Buderus' Urheberrecht nicht zu verletzen:

https://github.com/moosy/ems-php-webinterface/

Alle Screenshots gibts unter

https://github.com/moosy/ems-php-webinterface/tree/master/screenshots

Würde mich freuen, wenn jemand was damit anfangen könnte.
Rückmeldung gerne willkommen ;)

Viele Grüße
Moosy

von Bernd G. (bernd_g)


Lesenswert?

Super! Willst Du den Pull request noch machen oder soll es ein Fork 
bleiben?

von Michael M. (moosy)


Lesenswert?

Ich hab mal einen pull request losgetreten...
Ich bin mir nicht ganz sicher, ob die Zielsetzung meines Codes die 
gleiche ist wie Dannys, aber dazu wird er sich sicher demnächst äußern.
Ich strebe ein Tool an, das sowohl als Backend für z.B. Webinterfaces 
taugt als auch als CLI zur kommandozeilenbasierten Bedienung.
Danny sieht das Ganze wohl eher als reines Machine2Machine-Interface.
Na mal sehen, was er so sagt :)

von Roel (Gast)


Lesenswert?

Hi,


Sorry for posting in English, I can read German if I try hard enough but 
not write it well enough to be understandable. Hope this is OK?

I spend at least 10 hours over the last weeks to read and try to 
understand all information on this forum regarding interfacing the EMS 
bus with a PC. I have a Nefit (Dutch brand) heater that I want to 
control through a home automation system (based on IP Symcon). From what 
I understand, Nefit and Buderus are under the same umbrella and they 
both use EMS. That is why I ended up finding this forum through Google.

I think I roughly understand the current state of affairs but I'd 
appreciate if somebody could confirm the following:

There are two ways to communicate with an EMS bus:

- Through a dedicated and hard to build (for non-experts) circuit board, 
which has a USB or serial interface, directly into a PC;

- Or through a simple to build circuit board (which can be build on a 
bread board) as described on the EMS>Adapter>NetIO>Raspi page of the 
wiki. The circuit board need a ATmega644P instead of the ATMega32 that 
is on it standard. This circuit board interfaces with a NetIO module, 
through a regular 5x2 wire flat cable. The firmware to be flashed to 
this module is standard, that is to say, the EMS code is part of the 
standard distribution of AVR. It needs to be compiled on a PC, then 
flashed to the module using something like e.g. the mySmartUSB 
programmer. This module can communicate with a PC through Ethernet. 
There exists a daemon, called ems-collector, which periodically polls 
the NetIO module and stores measurements of temperatures. It also 
provides an interface to enter commands and read certain configuration 
parameters.

Is this correct so far?

If so, for my purposes, I could leave out the ems-collector and hence 
the RaspberryPi, and just query the NetIO module directly from my home 
automation software. The protocol is a relatively simple binary 
request/response design, which is 'documented' in the ems-collector 
source code; I can also check my implementation by using a sniffer to 
check the byte streams ems-collector sends vs what my own software 
sends. Correct?

Alternatively, I can extend ems-collector to be non-interactive so that 
I can use command-line calls from my home automation software, or I 
could turn ems-collector into a PHP module so that it can be used 
directly from IP-Symcon (which is largely based around PHP).

This second route I described is doable for somebody like me who is a 
software engineer but can only solder simple kits together and has no 
further knowledge of electronics. I'd just go to an electronics shop, 
buy the parts that are on the schematic, solder it literally following 
the lines on the schematic, and that should be it. Right?

Considering all this, is there still a reason to go the dedicated, hard 
to build circuit board route? Or am I missing a disadvantage of the 
NetIO-based approach?

Thanks to anyone reading this far!


regards,

Roel

von Karl M. W. (charlie-w)


Lesenswert?

Hoi Roel,

Roel schrieb:
> ...
> the NetIO module and stores measurements of temperatures. It also
> provides an interface to enter commands and read certain configuration
> parameters.
>
> Is this correct so far?

... absolutely!
And as a software engineer you are able to modify or alter or just use 
the idea of the existing collector-code.

> Considering all this, is there still a reason to go the dedicated, hard
> to build circuit board route? Or am I missing a disadvantage of the
> NetIO-based approach?

IngoFs board, that's what you're talking about, I suppose, has an 
additional CAN interface. But both ways lead to the point, that yo can 
read and write EMS ;)

Groetjes
Karl M.

von Bernd G. (bernd_g)


Lesenswert?

Hallo,

ich komme zwar mit der Elektronik nicht weiter und warte auf FLOBOs 
Platinen, aber das hier kann ich vielleicht bis dahin schon mal beheben:

pi@raspberrypi $ telnet 127.0.0.1 7777
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused

Kann mir dazu jemand was sagen?

Danke und Gruß
Bernd

von Thomas I. (thomas_i)


Lesenswert?

Hallo Michael,

sieht ja super aus. Ist in Danny's Code / Deinem Fork schon etwas zur 
Solarthermie drin ? Muß noch meine Hardware basteln, dann gehts los. 
Habe eine Buderus Anlage mit Solarthermie, mit Steuerung / Anzeige über 
RC35.

von Bernd G. (bernd_g)


Lesenswert?

Oder auch:
pi@raspberrypi $ telnet localhost 7777
Trying 127.0.0.1...
Trying ::1...
telnet: Unable to connect to remote host: Address family not supported 
by protocol

Sagt mir leider auch nichts...

von Karl M. W. (charlie-w)


Lesenswert?

Bernd Gewehr schrieb:
> telnet: Unable to connect to remote host:
starte mal den collectord

von Karl M. W. (charlie-w)


Lesenswert?

Hallo Michael,

Michael Moosbauer schrieb:
> Rückmeldung gerne willkommen ;)

Habe gerade mal etwas genauer drüber geschaut. Sieht ja super aus! Du 
musst ein sehr fleißiger Mensch sein, Michael. ;)

Wie ich eben auf GitHub gelesen habe, will Danny Deine Änderungen, wenn 
er mal Zeit findet, übernehmen. Na, dann übe ich mich in Geduld und 
harre der Dinge. |-0

Vielen Dank auf alle Fälle schon mal für die tolle Arbeit!

Gruß in's schöne Oberbayern
Karl M.

von Bernd Gewehr (Gast)


Lesenswert?

der läuft schon:

pi@raspberrypi ~ $ ps -A |grep collectord
15871 ?        00:00:00 collectord
pi@raspberrypi ~ $ telnet 127.0.0.1 7777
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
pi@raspberrypi ~ $

von Karl M. W. (charlie-w)


Lesenswert?

> der läuft schon:
Dateiberechtigungen?

von Michael M. (moosy)


Lesenswert?

@Thomas I:
Nein, leider nicht. Weil ich keine Solaranlage habe. Das müsste jemand 
rausfummeln, der eine hat zwinker :)

Der Einbau eines neuen Features ist eigentlich immer gleich:

1. Identifizierung der Parameter/Werte, die man ändern/einstellen kann
2. Herausfinden, in welchen Telegrammen sie stecken. Das geht mit meiner
   Version des collectord recht leicht:
   a) emsqry DE TY 0 25 , wobei DE das DEVICE is (also 10=RC35, 08=UBA),
      und TY der Telegrammtyp, den man im Verdacht hat, dass er 
zuständig
      ist.
      Ausgabe merken.
   b) Wert am RC35 verstellen
   c) a) wiederholen. Wenn sich was geändert hat, ist es ein heißer
      Kandidat.
   d) a) - c) wiederholen um sicherzugehen
   e) emsqry DE TY OFF 1  , wobei OFF der ausgezählte Offset ist,
      so lange probieren, bis genau dieser eine Wert da steht
   f) emscmd DE TY OFF <andererWert> und gucken, ob sich der Wert am
      RC35 geändert hat.
      WENN NICHT: mit emscmd DE TY OFF <Wert aus e)> alten Wert
      wiederherstellen.
3. Für die Messwerte parallel die Werte am RC35 ablesen und per emsqry
   gucken, ob man sie irgendwo findet (dabei beachten: emsqry liefert 
hex,
   Temperaturen sind oft verdoppelt 30° = 60 oder verzehnfacht 30° = 
300).

4. Ins EMS-Wiki eintragen (lassen)
5. In den ems-collectord einbauen (lassen)
6. Ins Webinterface einbauen (lassen)

:D

Viele Grüße
Moosy

von Michael M. (moosy)


Lesenswert?

@Thomas I:

Wenn Du das EMS-Interface zum Laufen bekommen hast, dann spiel doch mal 
ein wenig mit den Typen

 0x96    ParameterSolar
 0x97    MonitorSolar

Ich vermute, mit 0x96 kann man die Einstellungen ändern und mit 0x97 
kommen die Messwerte an (analog WW 0x33 Parameter und 0x34 Monitor) ...

von Michael M. (moosy)


Lesenswert?

So, ganz nebenbei bin ich dabei, meine Codebasis so aufzudröseln, dass 
Danny sie einfach(er) häppchenweise integrieren kann.

Ich habe daher meinen master-Branch in git neu auf Basis von Dannys 
aktueller Version aufgesetzt. Der kann natürlich noch lange nicht alles. 
Meine Version, die man auch für das Webinterface braucht, habe ich im 
Branch develop ausgelagert.

Wer also mein Webinterface ausprobieren will, der muss den collectord 
aus

git clone -b develop  https://github.com/moosy/ems-collector

verwenden. :)

Viele Grüße
Moosy

von Bernd G. (bernd_g)


Lesenswert?

Charlie W. schrieb:
> Bernd Gewehr schrieb:
>> telnet: Unable to connect to remote host:
> starte mal den collectord

Nachdem ich unter Verwendung der richtigen dev-Pakete neu compiliert 
habe, funktioniert nun auch mein telnet-Zugriff.

Die Erkenntnis ist: mein debian Linux hat die Version 3.10.25+ und 
benötigt libboost1.49-all-dev UND libboost1.49-dev und natürlich die 
restlichen Pakete wie im Wiki beschrieben. Damit ging's dann...

Gruß, Bernd

von Danny B. (maniac103)


Lesenswert?

So, Michael's Änderungen sind jetzt alle komplett gemergt, d.h. das 
Kommando-Interface von ems-collector hat jetzt eine Unmenge Optionen 
zusätzlich. Danke Michael :) Lediglich die direkten Lese-Schreibbefehle 
('raw write <dest> <type> <offset> <data>' und 'raw read <dest> <type> 
<offset> <len>', vorher emscmd und emsqry) müssen im Makefile aktiviert 
werden.
Neu ist auch, dass das Kommando-Interface mit der Kommandozeilenoption 
-C (oder --command-port) explizit aktiviert werden muss; und dass es 
einen weiteren Port gibt, der den Livedatenstrom ausgibt (Option -D bzw. 
--data-port).

Roel schrieb:
> There are two ways to communicate with an EMS bus:
>
> - Through a dedicated and hard to build (for non-experts) circuit board,
> which has a USB or serial interface, directly into a PC;

If you only want to read from the EMS, an adapter which takes the EMS as 
input and has an RS232 output can be built reasonably simply. Something 
like http://www.mikrocontroller.net/attachment/70536/EMSlog.gif (minus 
Q1, R5 and R6) will do; the firmware for the Atmega8 can be found in the 
framer/ directory of ems-collector). For sending it's not as 
straightforward as the Atmega8 only has one UART.
Directly interfacing the EMS to a PC isn't really a viable solution due 
to timing constraints, as pointed out by Niffko.

> - Or through a simple to build circuit board (which can be build on a
> bread board) as described on the EMS>Adapter>NetIO>Raspi page of the
> wiki. The circuit board need a ATmega644P instead of the ATMega32 that
> is on it standard. This circuit board interfaces with a NetIO module,
> through a regular 5x2 wire flat cable. The firmware to be flashed to
> this module is standard, that is to say, the EMS code is part of the
> standard distribution of AVR. It needs to be compiled on a PC, then
> flashed to the module using something like e.g. the mySmartUSB
> programmer. This module can communicate with a PC through Ethernet.
> There exists a daemon, called ems-collector, which periodically polls
> the NetIO module and stores measurements of temperatures. It also
> provides an interface to enter commands and read certain configuration
> parameters.

Correct, with two minor corrections: 'standard distribution of AVR' 
actually is 'standard distribution of a commonly used custom AVR 
firmware called ethersex', and ems-collector doesn't periodically poll 
the NET-IO for data, but opens a TCP connection and just waits for the 
data pushed into the connection by the NET-IO.

> If so, for my purposes, I could leave out the ems-collector and hence
> the RaspberryPi, and just query the NetIO module directly from my home
> automation software. The protocol is a relatively simple binary
> request/response design, which is 'documented' in the ems-collector
> source code; I can also check my implementation by using a sniffer to
> check the byte streams ems-collector sends vs what my own software
> sends. Correct?

You can do that, but why would just want to redo the framing decoding 
etc. done by ems-collector a second time instead of using 
ems-collector's interface?

> Alternatively, I can extend ems-collector to be non-interactive so that
> I can use command-line calls from my home automation software, or I
> could turn ems-collector into a PHP module so that it can be used
> directly from IP-Symcon (which is largely based around PHP).

ems-collector already is (designed to be) non-interactive. (At least) me 
and Michael are already using its TCP interface from PHP code. The TCP 
interface may look like a CLI as it's text based and usable via telnet, 
but it's not the intended use case and neither is the telnet protocol 
actually implemented (which is why Ctrl+C doesn't close the connection). 
The intended use case is using it as a machine interface from client 
software (PHP, Java, whatever).

> This second route I described is doable for somebody like me who is a
> software engineer but can only solder simple kits together and has no
> further knowledge of electronics. I'd just go to an electronics shop,
> buy the parts that are on the schematic, solder it literally following
> the lines on the schematic, and that should be it. Right?

Hopefully yes :)

> Considering all this, is there still a reason to go the dedicated, hard
> to build circuit board route? Or am I missing a disadvantage of the
> NetIO-based approach?

The main advantage of the NET-IO approach is that one doesn't need close 
proximity between the EMS and the machine evaluating the data. In my 
particular case, both are in exactly opposide sides of the house.

von Karl M. W. (charlie-w)


Lesenswert?

Danny Baumann schrieb:
> So, Michael's Änderungen sind jetzt alle komplett gemergt
> ...

Michael arbeitet an seinem Fork weiter, Du an Deiner Software ?)

Meine Fragen: "Wo sind die Unterschiede derzeit, wohin soll die Reise 
gehen? Bleibt es bei dem Fork? Wenn ja, mit welcher Absicht?"

Ihr seht, ich bin total verwirrt, wie weiland Nena. Vielleicht könnt Ihr 
mir ein wenig aus meiner Konfusion helfen. Fänd' ich total super.

Gruß
Karl M.

von Danny B. (maniac103)


Lesenswert?

Charlie W. schrieb:
> Danny Baumann schrieb:
>> So, Michael's Änderungen sind jetzt alle komplett gemergt
>> ...
>
> Michael arbeitet an seinem Fork weiter, Du an Deiner Software ?)
>
> Meine Fragen: "Wo sind die Unterschiede derzeit, wohin soll die Reise
> gehen? Bleibt es bei dem Fork? Wenn ja, mit welcher Absicht?"

Ich kann natürlich nicht für Michael sprechen, ich denke aber, dass der 
Plan ist, das PHP-Frontend auf die nun gemergten Änderungen umzustellen, 
d.h. das Frontend mit dem Collector aus meinem Repo gängig zu machen - 
ansonsten hätte man sich die Mühe des Einreichens ja sparen können?

von Karl M. W. (charlie-w)


Lesenswert?

Hi Danny,

Danny Baumann schrieb:
> Ich kann natürlich nicht für Michael sprechen

.. ist schon klar, trotzdem Danke für die rasche Antwort!

Dann warten wir noch auf Bayern. ;)

Gruß aus der Wetterau
Karl M.

von Michael M. (moosy)


Lesenswert?

Sodala, da bin ich wieder :)
Klar ist der Plan, das ganze Teil auf den "neuen" collectord 
umzustellen.
Ich habe die letzten Nächte gecodet wie verrückt ;)
Nochmals danke an Danny für das mergen (was ist mit den letzten paar 
kleinen Bugfixes... ;) ).
Ich habe die Gelegenheit genutzt und das PHP-Frontend komplett umgebaut.
Es werden nun keine Daten mehr aus Logfiles entnommen.
Stattdessen sieht der Aufbau mittlerweile so aus:


Ethersex <--> collectord <--> emscache <--> frontend

Der emscache ist ein kleiner Daemon, der den Livestream des collectord 
auswertet und die Daten inkl. Zeitstempel cached. Somit sind bei einer 
Anfrage stets alle Daten sofort verfügbar, incl. Angabe, wie aktuell 
diese sind.

Das Frontend verbindet sich also doppelt: Zum Daten holen mit dem 
emscache und zum Kommandos absetzen mit dem collectord.
Zusätzlich zur Funktion doEmsCommand() gibts nun die Funktion 
doEmsDataCommand, die auf dem Kommandoport nach Daten fragt und diese 
dann aus dem emscache zieht.

Es gibt nun auch zwei Frontends: Erstmal das PHP-Webinterface, das ich 
bei dieser Gelegenheit weitgehend auf AJAX (naja, sowas ähnliches ;) ) 
umgebaut habe, um die ewigen Ladezeiten und Servercycles zu umgehen. Es 
gibt also (fast) keine "Setzen" Buttons mehr, Wert ändern genügt. Und 
wenn man an der RC35 oder anderswo nen Wert ändert springt der Wert im 
Webinterface auch mit um (nach kurzer Verzögerung).

Und außerdem gibts noch ein CLI mit Commandhistory und "Verzeichnissen" 
und ein paar builtin commands:

diego:/home/programming/Heizung/emsclient # emsclient
EMS-Client V0.1 (c) 2014 by Michael Moosbauer
Connecting to EMS-Bus... OK!
ems:/> cd ww
ems:/ww> req
warmwaterminutes = 190783
warmwaterpreparationactive = off
warmwatersystemtype = large
warmwatertempok = on
ww boostcharge = off
ww currenttemperature = 50
ww customschedule = off
ww daymode = off
ww desinfection = on
ww desinfectionactive = off
ww desinfectionday = tuesday
ww desinfectionhour = 1
ww desinfectiontemperature = 70
ww masterswitch = on
ww maxtemperature = 80
ww onetimeload = off
ww onetimeloadindicator = off
ww opmode = auto
ww settemperature = 53
ww targettemperature = 10
zirkpump customschedule = off
zirkpump daymode = off
zirkpump opmode = auto
zirkpump switchpoints = 3x
zirkpumpactive = off
ems:/ww> cd zirkpump
ems:/ww/zirkpump> mode auto
OK
ems:/ww/zirkpump> cd /hk1
ems:/hk1> help
Available subcommands:
mode [day|night|auto]
daytemperature <temp>
nighttemperature <temp>
temperatureoverride <temp>
getholiday
holidaymode <start:YYYY-MM-DD> <end:YYYY-MM-DD>
vacationtemperature <temp>
getvacation
vacationmode <start:YYYY-MM-DD> <end:YYYY-MM-DD>
partymode <hours>
pausemode <hours>
getactiveschedule
selectschedule 
[family|morning|early|evening|forenoon|noon|afternoon|single|senior|cust 
om1|custom2]
getcustomschedule [1|2]
customschedule [1|2] <index> unset
customschedule [1|2] <index> [monday|tuesday|...|sunday] HH:MM [on|off]
scheduleoptimizer [on|off]
minheatflowtemperature <temp>
maxheatflowtemperature <temp>
reductionmode [offmode|reduced|raumhalt|aussenhalt]
relevantparameter [outdoor|indoor]
vacationreductionmode [outdoor|indoor]
maxroomeffect <temp>
designtemperature <temp>
temperatureoffset <temp>
frostprotectmode [off|byoutdoortemp|byindoortemp]
frostprotecttemperature <temp>
summerwinterthreshold <temp>
reducedmodethreshold <temp>
vacationreducedmodethreshold <temp>
cancelreducedmodethreshold <temp>
requestdata
OK
ems:/hk1>

Das CLI ist noch sehr Alpha, es fehlt noch mindestens Tab-Completion und 
eine ausführlichere Hilfe.

Der emscache ist auch noch nicht ganz fertig, denn da soll die 
Funktionalität der Mail-Benachrichtigung mit rein, so dass man sich 
einen weiteren Cronjob spart.
Außerdem soll diese Funktionalität leicht erweiterbar sein, so dass 
jeder je nach Gusto auf verschiedene Dinge reagieren kann (Wenn das 
Warmwasser am Morgen heiß genug ist, schicke eine Nachricht aufs Handy 
"Kannst jetz baden!") oder so ;)

Ich werd noch ein bissl brauchen, bis alles von anderen verwendbar ist. 
Außerdem fehlen in Dannys repo noch ein paar kleine Commits (ist der im 
Urlaub?)

Vermutlich wirds auf ein weiteres Repo "emstools" hinauslaufen mit dem 
cached und dem CLI (emsclient), wo auch die grundlegenden PHP-includes 
mit drin sind, und darauf aufbauend dann das Webinterface.

Mal gucken ;)

Viele Grüße
Moosy

von Bernd G. (bernd_g)


Lesenswert?

Insgesamt ist das großartig, was Ihr beide hier auf die Beine bringt! 
RESPEKT!

Könnt Ihr uns auf Stand halten, in welche git-repos grade was zu finden 
ist?

-> Aktueller collectord -> https://github.com/maniac103/ems-collector ??
-> Aktuelles PHP-Frontend -> 
https://github.com/moosy/ems-php-webinterface ??

-> Dev-branch collectord -> 
https://github.com/moosy/ems-collector/tree/develop ??
-> Dev-branch PHP-Webinterface -> ??

Danke und nochmals vielen Dank für diese tolle Arbeit!
Gruß, Bernd

: Bearbeitet durch User
von Michael M. (moosy)


Lesenswert?

Okokok, ich seh schon, ich werd ein Pre-Release machen :)

Also:
Der derzeit aktuelle EMS-Collector ist der hier:

https://github.com/moosy/ems-collector

weil Danny die letzten kleinen Commits von mir noch nicht gemerged hat 
(ich denke, er kam noch nicht dazu, weil es eigentlich alles reine 
Mini-Bugfixes sind, die offensichtliche Tipp- bzw. Copy/Pastefehler 
betreffen).
Sobald diese fixes mit drin sind, wird die einzige relevante offizielle 
Version des collectors (wieder) diese hier sein:

https://github.com/maniac103/ems-collector

Diese Versionen sind vom Befehlssatz und von den Schnittstellen 
weitgehend INKOMPATIBEL zum alten Webinterface!!

Um den neuen collectord mit Webinterface zu verwenden, braucht es:
1. Das repo ems-tools von mir (das noch nicht online ist, aber bald)
2. Das neue ems-php-webinterface (das auch noch nicht online ist, aber 
bald).

Ich mach jetzt mal folgendes:
Ich bring meine aktuelle Bastelversion soweit auf den Stand, dass sie 
standalone lauffähig ist, trenne sie auf in die ems-tools und das 
ems-php-webinterface und lade die Dinger mal hoch, auch wenn noch ein 
paar Dinge fehlen.
Die kommen dann später per commits dazu.
Aber ich sehe schon, es besteht Bedarf für die neue Version ;)

Viele Grüße
Moosy

von Danny B. (maniac103)


Lesenswert?

Michael Moosbauer schrieb:
> Nochmals danke an Danny für das mergen (was ist mit den letzten paar
> kleinen Bugfixes... ;) ).

Ich dachte, es kommt noch ein Pull Request ;) Ich schau sie mir morgen 
mal an.

> Stattdessen sieht der Aufbau mittlerweile so aus:
>
>
> Ethersex <--> collectord <--> emscache <--> frontend
>
> Der emscache ist ein kleiner Daemon, der den Livestream des collectord
> auswertet und die Daten inkl. Zeitstempel cached. Somit sind bei einer
> Anfrage stets alle Daten sofort verfügbar, incl. Angabe, wie aktuell
> diese sind.

Interessant. Das heißt, du benutzt den Livestream gar nicht aus dem 
Frontend? In dem Fall könnte man den Cache ja auch in den ems-collector 
packen und sich das Erzeugen und Parsen des Streams sparen...
Wie sieht denn dein Abfrage-Interface für den Cache aus?

> Außerdem fehlen in Dannys repo noch ein paar kleine Commits (ist der im
> Urlaub?)

Nein, einfach nur mit anderen Dingen beschäftigt; ansonsten siehe oben. 
;)

von Bernd G. (bernd_g)


Lesenswert?

Ich kann's kaum erwarten mit all dem Neuen zu experimentieren! DANKE!

Kompiliert Ihr den collectord mit libboost1.49 oder mit libboost1.50?

Bei mir wird bei der Installation von libmysqlcppconn-dev immer 
gemeckert, dass libboost1.50-all eben nicht libboost-dev ist und daher 
libboost1.49-all benötigt wird. Wenn ich libboost1.50-all installiere, 
wird libmysqlcppconn deinstalliert.

Also compiliere ich mit libboost1.49-all

Ergebnis:
Ich bekomme den telnet-Service des collectord nicht angesprochen (immer 
noch nicht), ich erhalte immer connection refused...

Weiss jemand Rat?

von Danny B. (maniac103)


Lesenswert?

Bernd Gewehr schrieb:
> Ich kann's kaum erwarten mit all dem Neuen zu experimentieren! DANKE!
>
> Kompiliert Ihr den collectord mit libboost1.49 oder mit libboost1.50?

1.49 sollte völlig ok sein.

> Ergebnis:
> Ich bekomme den telnet-Service des collectord nicht angesprochen (immer
> noch nicht), ich erhalte immer connection refused...

Hast du den Parameter -C bzw. --command-port angegeben?

von Bernd G. (bernd_g)


Lesenswert?

Nein, bitte genauere Angaben:

Usage: /usr/local/sbin/collectord [options] <target>

General options:
  -h [ --help ]                Show this help message
  -r [ --ratelimit ] arg (=60) Rate limit (in s) for writing numeric 
sensor values into DB
  -d [ --debug ] arg (=none)   Comma separated list of debug flags (all, 
io,message, data, stats, none)  and their files, e.g. 
message=/tmp/messages.txt
  -i [ --enable-cli ]          Open the API interface (port 7777) as CLI 
(interactive)

Daemon options:
  -P [ --pid-file ] arg (=/var/run//usr/local/sbin/collectord.pid)
                                        Pid file path
  -f [ --foreground ]                   Run in foreground
  -c [ --config-file ] arg              File name to read configuration 
from
Database options:
  --db-path arg         Path or server:port specification of database 
server (none to not connect to DB)
  -u [ --db-user ] arg  Database user name
  -p [ --db-pass ] arg  Database password

: Bearbeitet durch User
von Bernd G. (bernd_g)


Lesenswert?

Kann es sein, dass das telnet-Interface des collectord erst nach 
erfolgreichem Verbindungsaufbau zum EMS-Bus aktiviert wird? Das würde 
einiges erklären, ich warte nämlich immer noch brennend auf meine 
Niffko-Platine von Flobo
... teste also "auf dem Trockenen".

von Michael M. (moosy)


Lesenswert?

Hallo zusammen,

ich hab meinen Krempel mal hochgeladen ;)

https://github.com/moosy/ems-tools
https://github.com/moosy/ems-php-webinterface

Bitte zuerst die ems-tools ans Laufen bringen, und mittels des
emsclient testen. Wenn das geht, das ems-php-webinterface nachziehen.
Obwohls bei mir prima läuft, kanns bei Euch noch hakeln.
Bitte um Rückmeldung ;)

@Danny: Klar könnte man das cachen auch im collector machen. Das geht 
ohne Änderung des aktuellen Frontends, wenn er auf Port 7779 lauscht, 
und auf "getdata<cr>" hin sowas ausgibt:

diego:/home/programming # telnet localhost 7779
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
getdata
3wayonww = off | 1394319165
antipendelminutes = 15 | 1394317836
[...]
zirkpump opmode = auto | 1394315137
zirkpump switchpoints = 3x | 1394315136
zirkpumpactive = off | 1394319165
OK

Momentan versteht der cached genau 3 Befehle: getdata, flush und quit 
:).
Wobei in der Praxis eigentlich nur getdata zum Einsatz kommt.
Als nächstes soll der cached noch Trigger bekommen, so dass z.B. bei 
Störung eine Mail geschickt wird und so.
Wobei es natürlich nicht schlimm wäre, wenn der cached dann nur noch 
diese Funktionen hat und das cachen im collector passiert ^^.
Und der liefert halt eine alphabetisch sortierte Liste aller 
data-Port-Ausgaben ergänzt um einen (Unix-)Zeitstempel bei jedem 
einzelnen Wert, wann das letzte Update war.
Achja: Pull Request #13 ist immer noch offen ;)

LG
Moosy

: Bearbeitet durch User
von Danny B. (maniac103)


Lesenswert?

Bernd Gewehr schrieb:
> Kann es sein, dass das telnet-Interface des collectord erst nach
> erfolgreichem Verbindungsaufbau zum EMS-Bus aktiviert wird? Das würde
> einiges erklären, ich warte nämlich immer noch brennend auf meine
> Niffko-Platine von Flobo

Ja, das ist in der Tat so. Da man ohne bestehende EMS-Verbindung ja eh 
nix tun kann, lauscht der Collector erst dann auf Kommandos, wenn er 
sich selbst mit der Gegenstelle verbunden hat.

Michael Moosbauer schrieb:
> @Danny: Klar könnte man das cachen auch im collector machen. Das geht
> ohne Änderung des aktuellen Frontends, wenn er auf Port 7779 lauscht,
> und auf "getdata<cr>" hin sowas ausgibt:

Done, wenngleich etwas anders: Port 7777 hat jetzt ein 'cache 
fetch'-Kommando. 'cache fetch' ruft alles ab, 'cache fetch hk1' alle 
Werte von Heizkreis 1, 'cache fetch targettemperature' halt alle 
Solltemperaturen (usw. usf.) Die Formatierung habe ich so wie bei dir 
gelassen. Ich hab's auch mit dem Webinterface getestet (ems_data_socket 
rausgerissen und den Kommandonamen aktualisiert) - funktioniert :)
Ich denke noch drüber nach, die Cache- und Livestream-Ausgabe 
JSON-formatiert zu machen, bin mir aber noch nicht sicher, ob das 
Overkill ist. Hast du eine Meinung dazu?

> Als nächstes soll der cached noch Trigger bekommen, so dass z.B. bei
> Störung eine Mail geschickt wird und so.
> Wobei es natürlich nicht schlimm wäre, wenn der cached dann nur noch
> diese Funktionen hat und das cachen im collector passiert ^^.

Ja, Eventbehandlung ist Frontend-Geschichte, das gehört nicht in den 
Collector, insofern kannst du dich da austoben :)

> Und der liefert halt eine alphabetisch sortierte Liste aller
> data-Port-Ausgaben ergänzt um einen (Unix-)Zeitstempel bei jedem
> einzelnen Wert, wann das letzte Update war.

Warum alphabetisch sortiert? Die momentane Sortierung ist 'Position in 
der Type-Enum, wenn gleich, dann Position in der SubType-Enum'. Das kann 
man natürlich ändern (wenngleich alphabetisch ziemlich hässlich wäre, 
Subtype vor Type wäre aber IMHO ok), aber spielt das eine große Rolle?

von Danny B. (maniac103)


Lesenswert?

Ach ja, und das Servicecode-Protokoll bräuchte wahrscheinlich eine 
Längen-Limitierung - sowohl mein Wandboard als Server als auch der 
Browser haben ordentlich zu tun, das Protokoll jedes Brennerstarts der 
(bei mir) letzten 3 Jahre anzuzeigen ;)

von jschmied (Gast)


Lesenswert?

Ich habe den collectord zum Testen gerade auf ubuntu 12.4 compiliert. 
Dort ist der g++ etwas komisch und braucht die Angabe der lib Dateien 
nach den *.o Dateien:

Geht nicht (orginal Makefile):
collectord: $(OBJS) $(DEPFILE) Makefile
  $(CC) $(LIBS) -o collectord $(OBJS)

Da gibts massenhaft "Nicht definierter Verweis auf"


Folgendes geht:
collectord: $(OBJS) $(DEPFILE) Makefile
  $(CC) -o collectord $(OBJS) $(LIBS)

War etwas schwer zu finden ...

Viele Grüße

Jürgen

von Karl M. W. (charlie-w)


Lesenswert?

jschmied schrieb:
> Geht nicht (orginal Makefile):

Bei mir läuft Raspbian GNU/Linux 7.2 (wheezy). Mit dem Original makefile 
gibt es hier kein Problem, läuft einwandfrei durch.

Danny Baumann schrieb:
> Port 7777 hat jetzt ein 'cache fetch'-Kommando

In emsqry.inc wie folgt geändert:
Z. 49:  $service_port_data=7777;
Z. 150: $tmp = "cache fetch\n";
und schon klappts auch mit der Heizung.

Woran es bei mir noch hapert ist das Feld "Beschreibung" des Statuscode. 
Mal zeigt es an, mal zeigt es nicht an. Muss ein Blinker eingebaut sein. 
;)
Und die Graphiken schreiben noch nicht, muss ich noch mal vertieft 
schauen.

Wirklich tolle Arbeit Jungs! Herzlichen Dank dafür!

Gruß aus der Wetterau
Karl M.

von Michael M. (moosy)


Lesenswert?

@Danny:
Habs schon umgebaut. Nur im cache is mMn noch ein kleiner Bug, so dass 
nur der erste Wert eines targets gecached wird. Fixvorschlag im PR.

Funzt ansonsten prächtig. Sortierung is egal, hatt ich halt so damals. 
Ist Frontendsache.

Längenlimit kommt mit dem nächtsten Commit.
3 Jahre sind ein wenig viel in einem Schirm :smile:

von Danny B. (maniac103)


Lesenswert?

Michael Moosbauer schrieb:
> Habs schon umgebaut. Nur im cache is mMn noch ein kleiner Bug, so dass
> nur der erste Wert eines targets gecached wird. Fixvorschlag im PR.

Jup, bescheuerter Bug meinerseits. Wenn ich den []-Operator gehabt hätte 
(m_cache[key] = ...) hätte es funktioniert - der braucht aber einen 
Default-Konstruktor für den Value.
Danke für den Fix, das ist der richtige :)

von Bernd G. (bernd_g)


Lesenswert?

Kürze Frage:
Muss der neue Cache mit einem Parameter wie -K 7779 aktiviert werden 
oder wie geht das?

von Danny B. (maniac103)


Lesenswert?

Bernd Gewehr schrieb:
> Kürze Frage:
> Muss der neue Cache mit einem Parameter wie -K 7779 aktiviert werden
> oder wie geht das?

Der muss nicht aktiviert werden, sondern ist immer da.

von jschmied (Gast)


Lesenswert?

Hallo!

Eine Frage noch:

apt-get install php5-mysql

installiert auch apache2. Ist das wirklich nötig wenn man mit lighttpd 
arbeiten möchte?

Viele Grüße

Jürgen

von Bernd G. (bernd_g)


Lesenswert?

Habe nun soweit alles laufen!! Geil!! :-)

Ich bekomme die Graphen nicht hin, welche Hilfe könnt Ihr mir noch 
geben?

Eine Step-by-step-Anleitung würde sehr helfen!

Ich danke Euch für diese starke Leistung!

von Bernd G. (bernd_g)


Lesenswert?

Gibt es hierzu einen Tip?

pi@raspberrypi /usr/local/bin $ ./calcemsgraphs.sh

gnuplot> set grid lc rgb '#aaaaaa' lt 1 lw 0,5
                                             ^
         line 0: ';' expected

pi@raspberrypi /usr/local/bin $

von Karl M. W. (charlie-w)


Lesenswert?

Bernd Gewehr schrieb:
> gnuplot> set grid lc rgb '#aaaaaa' lt 1 lw 0,5

Versuche mal Folgendes in der "ems-gen-graphs.py:
92.    process.stdin.write("set terminal png size 800, 450\n")
93.    process.stdin.write("set grid lc rgb '#aaaaaa' lt 1 lw 0.5\n")

Gruß aus der frühlingshaften Wetterau
Karl M.

von Karl M. W. (charlie-w)


Lesenswert?

jschmied schrieb:
> apt-get install php5-mysql
> installiert auch apache2. Ist das wirklich nötig wenn man mit lighttpd

Zwei Webserver parallel? Kein wirklicher Gewinn. ;)
Du arbeitest mit Ubuntu 12.4?
Die Anleitung unter:
http://ems-gateway.myds.me/dokuwiki/doku.php?id=wiki:ems:net_io#software1
ist für "Raspbian" = Debian 7.x (wheezy) geschrieben.
Da hat er den Apachen nicht nachgeladen.

Sag mal Jürgen, Du kennst Dich doch gut mit Jquery-mobile aus, wenn ich 
mich recht erinnere. Was sagst Du denn zum Thema: Michaels Website auf 
Jq-mobile  portieren? ;)

Gruß aus der noch immer sonnigen Wetterau
Karl M.

von Jürgen S. (Firma: privat) (jschmied)


Lesenswert?

>> apt-get install php5-mysql
>> installiert auch apache2. Ist das wirklich nötig wenn man mit lighttpd
>
> Zwei Webserver parallel? Kein wirklicher Gewinn. ;)
> Du arbeitest mit Ubuntu 12.4?

Hab jetzt einen Pi. Gestern hab ich nach der Anleitung im Wiki mit 
2014-01-07-wheezy-raspbian getestet und php5-mysql hat den apache2 
mitgezogen ...


> Sag mal Jürgen, Du kennst Dich doch gut mit Jquery-mobile aus, wenn ich
> mich recht erinnere. Was sagst Du denn zum Thema: Michaels Website auf
> Jq-mobile  portieren? ;)

Das sind unterschiedliche Architekturen. JQuery rechnet im Browser d.h. 
die Daten würden z.B. über JSON geladen werden und im Browser gerendert. 
Michaels Webseite rendert alles auf dem Server. Ansonsten geht es 
natürlich mit jeder Sprache ...

PS: Bin gerade dabei den collectord mit dem PIC EMS-GW zum Laufen zu 
bringen, um Michaels Webseiten zu nutzen. Das EMS-GW ersetzt dann den 
netio und sendet einfach das gleiche Protokoll.

vg

Jürgen

von Karl M. W. (charlie-w)


Lesenswert?

Charlie W. schrieb:
> Woran es bei mir noch hapert ist das Feld "Beschreibung" des Statuscode.
> Mal zeigt es an, mal zeigt es nicht an. Muss ein Blinker eingebaut sein.
> ;)

Habe den "Blinker" gefunden. Es sind die Umlaute und Ligaturen im Array 
der EMS-Sevicecode-Descriptions (/ems-tools/includes/emsscdesc.inc).

Merke: Ohne ä, ö, ü und ß gehts besser!

Gruß aus der Wetterau
Karl M.

von Jürgen S. (Firma: privat) (jschmied)


Lesenswert?

> Merke: Ohne ä, ö, ü und ß gehts besser!
Noch besser währe ein richtiger Zeichensatz ;)

Habs jetzt mit dem EMS-GW teilweise am Laufen. Probleme gibts noch mit 
fehlenden Sensor-Namen, ich bekomme überhaupt keine Grafiken und hab 
noch ein paar andere Fehler/Warnungen im lighttp-Log.

Wenn ich ems-gen-graphs.py per Hand starte, wird nur das PNG für die 
Heizkurve erzeugt.

Die Buttons der ersten Seite z.B. zum Starten der Einmalladung sind noch 
ohne Funktion - zumindest bei mir ;)

Wenn ichs in den nächsten Tagen nicht alleine hinbekomme, melde ich mich 
noch mal.

vg

Jürgen

von Karl M. W. (charlie-w)


Lesenswert?

Jürgen Schmied schrieb:
>> Merke: Ohne ä, ö, ü und ß gehts besser!
> Noch besser währe ein richtiger Zeichensatz ;)

Logo! Hab' ich mit 'rumexperimentiert. Allerdings ohne Erfolg.
Dann habe ich kurzerhand die Texte gekürzt und die "nicht utf-8" Zeichen 
ersetzt. Wenn's bei Dir läuft, bin ich für einen Hinweis dankbar. ;}

> bekomme überhaupt keine Grafiken
Hatte ich auch, sind meist unrichtige Pfadangaben. Moosy hat seine 
eigene Struktur. ;) Bis auf die Schaltpunkte (schedule.png) geht's jetzt 
aber.

Mit freundlichen Grüßen aus der Wetterau
Karl M.

von Norbert S. (norbert)


Lesenswert?

Hi Michael,

ich gehöre zu den glücklichen die ein Gateway bekommen haben, gibt es 
eine Möglichkeit dein Frontend mit allen Features auch damit zu nutzen 
(Ohne den NetIO), Raspi ist natürlich auch vorhanden?!

Gruss

Norbert

von Bernd G. (bernd_g)


Lesenswert?

Hallo!

Die Probleme mit den Graphen lagen bei mir neben den Pfaden vor allem an

- der mysql socket Angabe in der config.py:
1
/var/run/mysqld/mysqld.sock
 für RaspberryPi/debian wheezy

- den Berechtigungen an den Verzeichnissen
1
chmod 777 /tmp/
2
chmod 777 .../graphs/

- den Berechtigungen für die Graphen
1
chown pi *
2
chmod 777 *
 auf die graph-Dateien in .../graphs/ (ich hatte sie mit dem user root 
kopiert)

- den Berechtigungen für den www-data User
1
chown www-data schedule.png
 in .../graphs/ damit der webserver die Datei ändern darf (lighttpd mit 
user www-data)

Bei mir geht jetzt alles, bis auf das Zeichensatzproblem!

Gruß Bernd

: Bearbeitet durch User
von Michael M. (moosy)


Lesenswert?

Hallo zusammen :)
@Norbert:
Mit dem Low-Level-Kram hab ich mich eigentlich gar nicht beschäftigt.
Soweit ich das EMS-GW kenne, bietet das ja seine Daten auch seriell an, 
was Dannys collectord ja prinzipiell auch anbietet.
Es sind also "nur" noch unterschiedliche Protokolle. Ich kann schwer 
abschätzen, wie groß der Aufwand ist, das EMS-GW an den collectord 
anzubinden. Aber wenn das gelingt, sollte es eigentlich keinen 
Unterschied machen zum NETIO, da ja das NETIO nur die Daten von/auf den 
EMS-Bus gibt und die Checksummen und das BREAK erzeugt. Die ganze 
Intelligenz ist ja im collector. Hat nicht Jürgen da schon was zum 
Laufen gekriegt?

@Jürgen:
Heißt das, dass die Kommunikation collectord <-> EMS-GW klappt?
Funktionieren die Befehle, die man mit meinem emsclient bzw. per telnet 
auf den Commandport des collectord absetzen kann? Wenn ja, dann müsste 
eigentlich alles gehen.

@Bernd:
Lust, die Installationsanleitung entsprechend zu erweitern?
Wegen dem Zeichensatzproblem:
Versucht mal in der lemscnt.ajax in Zeile 110:
$desc=htmlentities ($desc, ENT_COMPAT | ENT_HTML401 , 'ISO-8859-1');
Bin ich echt der einzige UTF-8 Verweigerer hier?

@Karl:
Was geht bei den Zeitprogramm-Bildern nicht?

LG Moosy

P.S: Zitat php.net:
> encoding
> Like htmlspecialchars(), htmlentities() takes an optional third argument
> encoding which defines encoding used in conversion.
[...]
> Although this argument is technically optional, you are highly
> encouraged to specify the correct value for your code.

Okay, okay. Encoding sollte also immer rein ;)

: Bearbeitet durch User
von Jürgen S. (Firma: privat) (jschmied)


Lesenswert?

> Es sind also "nur" noch unterschiedliche Protokolle. Ich kann schwer
> abschätzen, wie groß der Aufwand ist, das EMS-GW an den collectord
> anzubinden. Aber wenn das gelingt, sollte es eigentlich keinen
> Unterschied machen zum NETIO, da ja das NETIO nur die Daten von/auf den
> EMS-Bus gibt und die Checksummen und das BREAK erzeugt. Die ganze
> Intelligenz ist ja im collector. Hat nicht Jürgen da schon was zum
> Laufen gekriegt?
Ja, es geht bei mir. Allerdings nicht seriell, sondern über Ethernet. 
Ein ENC28J60 Modul ist also nötig. Ein paar Probleme habe ich aber noch 
mit der Weboberfläche.


>
> @Jürgen:
> Heißt das, dass die Kommunikation collectord <-> EMS-GW klappt?
> Funktionieren die Befehle, die man mit meinem emsclient bzw. per telnet
> auf den Commandport des collectord absetzen kann? Wenn ja, dann müsste
> eigentlich alles gehen.
Ja, ich sehe im Log des collectord eine zweiseitige Kommunikation. Die 
Weboberfläche holt sich ja auch aktiv Daten vom Bus. Das geht schon.

Ich stelle die FW heute Abend auf die Wiki Seite.

vg

Jürgen

von Danny B. (maniac103)


Lesenswert?

Michael Moosbauer schrieb:
> Hallo zusammen :)
> @Norbert:
> Mit dem Low-Level-Kram hab ich mich eigentlich gar nicht beschäftigt.
> Soweit ich das EMS-GW kenne, bietet das ja seine Daten auch seriell an,
> was Dannys collectord ja prinzipiell auch anbietet.
> Es sind also "nur" noch unterschiedliche Protokolle. Ich kann schwer
> abschätzen, wie groß der Aufwand ist, das EMS-GW an den collectord
> anzubinden. Aber wenn das gelingt, sollte es eigentlich keinen
> Unterschied machen zum NETIO, da ja das NETIO nur die Daten von/auf den
> EMS-Bus gibt und die Checksummen und das BREAK erzeugt. Die ganze
> Intelligenz ist ja im collector. Hat nicht Jürgen da schon was zum
> Laufen gekriegt?

Ich würde Beitrag "Re: Buderus EMS-"Gateway" mit PIC18F / Sammelbestellung" mal als 
'ja' deuten. AFAIK ist das EMS-GW aus collectord-Sicht mit dieser 
Firmware identisch zu einem NET-IO.

> @Bernd:
> Lust, die Installationsanleitung entsprechend zu erweitern?
> Wegen dem Zeichensatzproblem:
> Versucht mal in der lemscnt.ajax in Zeile 110:
> $desc=htmlentities ($desc, ENT_COMPAT | ENT_HTML401 , 'ISO-8859-1');
> Bin ich echt der einzige UTF-8 Verweigerer hier?

Ja. :-P
IMHO ist, wenn das Zielsystem Linux ist, die Verwendung von UTF-8 immer 
eine gute Idee, schon weil es am wenigsten Verwirrung verursacht ;)

von Michael M. (moosy)


Lesenswert?

Pffff :)
Bei mir hier hat bislang UTF-8 mehr Ärger gemacht als es bringt. Ich 
werde beim nächsten Server-OS-Upgrade mal über nen Umstieg nachdenken.
Ich habe übrigens gerade gesehen, dass ich in der ajax.php eine Zeile 
vergessen habe (ganz am Anfang):

<?php
header('Content-Type: text/html; charset=iso-8859-1');
[...]

Oder halt UTF-8, wenns jemand umgebaut hat ;).
Hilft das bei Euch?

LG
Moosy

von Gerd N. (virtualpinguin)


Lesenswert?

Hallo,

gibt es inzwischen schon eine fertige Platine? Weiter oben habe ich mal 
gelesen dass flobo eine anbieten will. Falls nicht wäre ich sehr froh 
wenn mir irgendwer (natürlich gegen Bezahlung) eine zusammenlöten würde, 
da ich ein Lötdau bin.

Viele Grüße

Gerd

von Jürgen S. (Firma: privat) (jschmied)


Lesenswert?

Das Meiste wird jetzt angezeigt, ich habe aber noch ein paar Fehler:

Livestatus:

2014-03-19 14:19:26: (mod_fastcgi.c.2676) FastCGI-stderr: PHP Notice: 
Undefined index: menu in /var/www/index.php on line 21

2014-03-19 14:19:26: (mod_fastcgi.c.2676) FastCGI-stderr: PHP Notice: 
ob_flush(): failed to flush buffer. No buffer to flush in 
/emsincludes/emsqry.inc on line 20

2014-03-19 14:20:15: (mod_fastcgi.c.2676) FastCGI-stderr: PHP Notice: 
Undefined index: heaterpump currentmodulation in /var/www/lemscnt.ajax 
on line 73
PHP Notice:  Undefined index: heatexchanger currenttemperature in 
/var/www/lemscnt.ajax on line 92
PHP Notice:  Undefined index: outdoor currenttemperature in 
/var/www/lemscnt.ajax on line 100

Erweiterte Einstellungen:

2014-03-19 14:23:09: (mod_fastcgi.c.2676) FastCGI-stderr: PHP Notice: 
Undefined offset: 1 in /emsincludes/emsgetinfo.inc on line 146



Fehlerspeicher:

PHP Notice:  Undefined offset: 51816 in /var/www/a_emserr.php on line 53
PHP Notice:  Undefined offset: 51858 in /var/www/a_emserr.php on line 53
PHP Notice:  Undefined offset: 51816 in /var/www/a_emserr.php on line 53
PHP Notice:  Undefined offset: 12816 in /var/www/a_emserr.php on line 53
PHP Notice:  Undefined offset: 12816 in /var/www/a_emserr.php on line 53
PHP Notice:  Undefined offset: 12794 in /var/www/a_emserr.php on line 53
PHP Notice:  Undefined offset: 12816 in /var/www/a_emserr.php on line 53

Statistik:
2014-03-19 14:23:51: (mod_fastcgi.c.2676) FastCGI-stderr: PHP Notice: 
Undefined index: menu in /var/www/index.php on line 21
PHP Notice:  Undefined index: heater operatingminutes in 
/var/www/a_emstime.php on line 22
PHP Notice:  Undefined index: heater heatingminutes in 
/var/www/a_emstime.php on line 22
PHP Notice:  Undefined index: heater heaterstarts in 
/var/www/a_emstime.php on line 28
PHP Warning:  Division by zero in /var/www/a_emstime.php on line 58


Letzte Stunde:
PHP Notice:  Trying to get property of non-object in 
/var/www/sensor_utils.php.inc on line 85
PHP Notice:  Trying to get property of non-object in 
/var/www/sensor_utils.php.inc on line 11
PHP Notice:  Trying to get property of non-object in 
/var/www/sensor_utils.php.inc on line 12
PHP Notice:  Trying to get property of non-object in 
/var/www/sensor_utils.php.inc on line 20
PHP Notice:  Trying to get property of non-object in 
/var/www/sensor_utils.php.inc on line 21
PHP Notice:  Trying to get property of non-object in 
/var/www/sensor_utils.php.inc on line 87
PHP Notice:  Trying to get property of non-object in 
/var/www/sensor_utils.php.inc on line 11
...
PHP Warning:  strftime() expects parameter 2 to be long, string given in 
/var/www/utils.php.inc on line 11


vg

Jürgen

von Jürgen S. (Firma: privat) (jschmied)


Lesenswert?

Noch eine Frage: muss ich calcemsgraphs.sh in den cron hängen? Ich kann 
bisher die graphs nur manuell erzeugen.

Ansonsten:

Ich vermisse noch ein Diagramm für den HK1. Ist das geplant oder soll 
ich mir das selbst bauen ? ;)

Im Diagramm für die Pumpen ist die Kesselpumpe immer an. Ist das bei 
Euch auch so?

Viele Grüße

Jürgen

von Karl M. W. (charlie-w)


Lesenswert?

Jürgen Schmied schrieb:
> Undefined index: menu in /var/www/index.php on line 21
$menu = (@$_GET["menu"]!="no");

> ob_flush(): failed to flush buffer. No buffer to flush in
> /emsincludes/emsqry.inc on line 20
//     ob_flush(); ;)

Ja, ich weiß, ist nicht die Feine, aber funzt.
Zu den übrigen Fehlern kann ich leider nichts sagen, sind bei mir nicht 
aufgetreten. Aber Moosy wird's schon richten. ;)

So, nachdem ich alle ;) Eure Tips beherzigt habe, läuft's bei mir 
jetzt rund. Super Arbeit, super Sache, alles perfekt!

Nochmals vielen Dank für Eure Mühen und Eure Arbeit. Ganz besonderen 
Dank aber an die zwei Macher, an Danny und Michael!

Gruß aus der Wetterau
Karl M.

von Karl M. W. (charlie-w)


Lesenswert?

Jürgen Schmied schrieb:
> Noch eine Frage: muss ich calcemsgraphs.sh in den cron hängen?

Also, da bin ich mir auch noch nicht klar, was da sinnvoll ist.
Wenn die Statistik "Letzte Stunde" einigermaßen aktuell sein soll, dann 
muss ich spätestens alle fünf Minuten die calcemsgraphs.sh laufen 
lassen. Damit schaffe ich unnötige Last und unnötigen Schreibzugriff auf 
meine SD. Und was die Statistiken ab einem Tag oder länger betrifft, ist 
das völliger Unsinn.

Ich denke, ich hänge die Erzeugung der jeweils gewünschten / 
erforderlichen Graphen an die jeweilige einzelne Webseite.

Frage: "Wie habt Ihr das denn für Euch gelöst?"

TIA und

Gruß aus der Wetterau
Karl M.

von Michael M. (moosy)


Lesenswert?

Ich lass die calcemsgraphs alle 5 Minuten laufen.
Ist aber auch ein "richtiger" Server, der eh die ganze Zeit wild auf den 
Platten rumrödelt ;)
LG
Moosy

von Florian B. (Firma: Framelabs GbR) (flobo)


Lesenswert?

Hiho,

ich würde mich als "Hardwarelieferant" gerne zur Verfügung stellen.
Das EMS Gateway vom Ingo habe ich soweit schonmal herstellen lassen und 
habe 4 Stück auf Lager.
Ich spreche gerade mit dem Bestücker was die Herstellung einer solchen 
Platine genau kosten würde etc.

Die Absolute Königslösung wäre dann meiner Meinung nach EMS GW => 
Raspberry.
Könnt ihr das soweit bestätigen ? Nicht das ich mich jetzt auf diese 
Lösung konzentriere und dann doch was anderes besser sein wird als diese 
Kombo.

von Jürgen S. (Firma: privat) (jschmied)


Lesenswert?

> Die Absolute Königslösung wäre dann meiner Meinung nach EMS GW =>
> Raspberry.

Ideal wäre es, auf der Platine des EMS-GW den CAN Teil zu entfernen und 
dafür ein Ethernet-Interface zu platzieren. Dann ist das an einem 
Flachbandkabel hängende Netzwerkmodul überflüssig.

Viele Grüße

Jürgen

von Frank G. (drego)


Lesenswert?

Kurze Nachfrage: Funktioniert das auch mit dem HT3 Bus? Hat jemand eine 
Idee/Liste zu den dekodierungen zu dem Bus. Die sind verdammt ähnlich 
finde ich. Kann mir jemand weiterhelfen? Danke!

von Gerd N. (virtualpinguin)


Lesenswert?

Hallo,

weiß irgendwer ob man die Daten auch über die 1-wire Schnittstelle bei 
Niffkos Platine abfragen kann?
Ich habe nämlich schon ein 1-wire Netzwerk und da wäre das ideal.

Gerd

von Jürgen S. (Firma: privat) (jschmied)


Lesenswert?

> Kurze Nachfrage: Funktioniert das auch mit dem HT3 Bus? Hat jemand eine
> Idee/Liste zu den dekodierungen zu dem Bus. Die sind verdammt ähnlich
> finde ich. Kann mir jemand weiterhelfen? Danke!

Die Hardware sollte wohl laufen. Allerdings haben die Busteilnehmer 
andere Adressen und die Telegramme sind wohl anders codiert. Man könnte 
also den Code als Basis benutzen und die HT3 Telegramme einbauen.

vg

Jürgen

von Thomas M. (mollo)


Lesenswert?

Für den Nachbau EMS > Adapter > NetIO > Raspi wird hier auf dem
Avr-Net-IO Board ein ATmega644P-20PU wegen der 2 seriellen 
Schnittstellen verlangt.
Meine Versuche in den verschiedenen Vergleichslisten zu erkennen ob auch 
eine bei mir vorhandene 1284P PU CPU funktionier sind gescheitert.
Deshalb die Frage: hat ATMEGA1284P PU eine 2te serielle Schnittstell
und kann diese CPU ohne weitere Probleme gegen die verlangte
ATmega644P-20PU getauscht werden.
Güße,
Thomas

von Danny B. (maniac103)


Lesenswert?

Thomas Mollowitz schrieb:
> Meine Versuche in den verschiedenen Vergleichslisten zu erkennen ob auch
> eine bei mir vorhandene 1284P PU CPU funktionier sind gescheitert.
> Deshalb die Frage: hat ATMEGA1284P PU eine 2te serielle Schnittstell
> und kann diese CPU ohne weitere Probleme gegen die verlangte
> ATmega644P-20PU getauscht werden.

Ich würde die Tabelle in 
http://avrprogrammers.com/articles/AVR/atmega16-atmega32-atmega644 mal 
als 'ja' deuten. Der 1284P hat jedenfalls eine zweite USART; ich habe 
jetzt nicht überprüft, ob er pinkompatibel ist, die Vermutung liegt aber 
sehr nahe.

von Maciej Piliński (Gast)



Lesenswert?

Hallo,

sorry für meine schreckliche Deutsch ...
Ich entwarf und erbaut Platinnen von Igor F. Diagramm 
(http://ems-gateway.myds.me/dokuwiki/doku.php?id=wiki:ems:net_io).
Die erste Version der Platte sah aus wie die Zeichnungen und Bilder ... 
Obwohl die Montage und führen Sie das ganze System funktioniert 
einwandfrei (exakt: sensationell :)), habe ich beschlossen, den Entwurf 
in der Weise, dass die größten Teile der Platinnen wurden Masse (GND) 
abgedeckt ändern.
Der endgültige Entwurf der Platinen in Eagle kann auch heruntergeladen 
werden.

Mit freundlichen Grüßen,
Maciej

PS. I can translate the above mentioned page into English if anyone 
would be interested...

von Maciej Piliński (Gast)


Angehängte Dateien:

Lesenswert?

Und auch ein Umsetzung photo...

von Karl M. W. (charlie-w)


Lesenswert?

Hallo Maciej,

Dein Deutsch ist super, wir haben alles verstanden.
Wünschte, ich könnte halb so gut polnisch schreiben oder lesen.

> Der endgültige Entwurf der Platinen in Eagle kann auch heruntergeladen
> werden.
und wo?

Die Bilddatei ist reichlich groß (6MB), hätte man "etwas" reduzieren 
können. ;-)
Ansonsten: Gute Arbeit, perfekt!

Gruß aus der Wetterau
Karl M.

von Karl M. W. (charlie-w)


Lesenswert?

Charlie W. schrieb:
> und wo?

Ääähm ... Asche auf mein Haupt!
Erst schauen, dann schreiben.
Sorry!

von Gerd N. (virtualpinguin)


Lesenswert?

Hallo flobo,

ist noch eine Platine zu haben und wie ist der Preis? Mir wäre 
allerdings die Platine von Niffko lieber, da diese eine 1-Wire 
Schnittstelle hat und das Netzwerkmodul mit dem NetIO auch schon 
integriert ist.

Viele Grüße

: Bearbeitet durch User
von LarsRosen (Gast)


Lesenswert?

jschmied schrieb:
> Ich habe den collectord zum Testen gerade auf ubuntu 12.4
> compiliert.
> Dort ist der g++ etwas komisch und braucht die Angabe der lib Dateien
> nach den *.o Dateien:
>
> Geht nicht (orginal Makefile):
> collectord: $(OBJS) $(DEPFILE) Makefile
>   $(CC) $(LIBS) -o collectord $(OBJS)
>
> Da gibts massenhaft "Nicht definierter Verweis auf"
>
> Folgendes geht:
> collectord: $(OBJS) $(DEPFILE) Makefile
>   $(CC) -o collectord $(OBJS) $(LIBS)
>
> War etwas schwer zu finden ...
>
> Viele Grüße
>
> Jürgen

Kann man das mal im Trunk ändern? Ist ja hammer hart das zu finden :-)

mfg
Lars Rosenberg

von Danny B. (maniac103)


Lesenswert?

LarsRosen schrieb:
> jschmied schrieb:
>> Geht nicht (orginal Makefile):
>> collectord: $(OBJS) $(DEPFILE) Makefile
>>   $(CC) $(LIBS) -o collectord $(OBJS)
>>
>> Folgendes geht:
>> collectord: $(OBJS) $(DEPFILE) Makefile
>>   $(CC) -o collectord $(OBJS) $(LIBS)
>
> Kann man das mal im Trunk ändern? Ist ja hammer hart das zu finden :-)

Done :)

von LarsRosen (Gast)


Lesenswert?

Gibt es eigentlich ein richtige Anleitung zu den ganzen?

Ich versuche als von moosy das Frontend einzurichten aber irgendwie 
bekomme ich als die meldung

Exception: Access denied for user 'ems'@'localhost' (using password: 
YES)

und die Tabellen hat er auch nicht eingerichtet?


ich gehe im moment nach dieser anleitung vor:

http://ems-gateway.myds.me/dokuwiki/doku.php?id=wiki:ems:net_io

von Jürgen S. (Firma: privat) (jschmied)


Lesenswert?

Versuche mal:

pi> sudo mysql -u root -p
mysql> CREATE DATABASE ems_data;
mysql> GRANT ALL ON ems_data.* TO 'ems'@'%';

vg

Jürgen

von LarsRosen (Gast)


Lesenswert?

Weiss jemand zufällig ob das nur mit der RC35 funktioniert oder auch mit 
der RC300?

von Danny B. (maniac103)


Lesenswert?

LarsRosen schrieb:
> Weiss jemand zufällig ob das nur mit der RC35 funktioniert oder auch mit
> der RC300?

Wenn RC300 ein Typo ist und du RC30 meintest: Ja, es funktioniert. (Ich 
habe auch eine RC30).

von larsrosen (Gast)


Lesenswert?

Nein ich meine die neue Steuerung rc300 mit ems - plus

von Danny B. (maniac103)


Lesenswert?

larsrosen schrieb:
> Nein ich meine die neue Steuerung rc300 mit ems - plus

Von der Beschreibung bei Buderus würde ich zu 'ja' tendieren (da der 
zugrundeliegende Bus ja immer noch EMS ist). Probiert hat es meines 
Wissens nach aber noch niemand, insofern sind definitive Aussagen etwas 
schwierig...

von Niffko _. (niffko)


Lesenswert?

Danny Baumann schrieb:
> Probiert hat es meines Wissens nach aber noch niemand ...

Aber na klar doch ... ;)

RC300 wird funktionieren ... wenn auch nicht out-of-the-box.

Es gibt gleiche Telegramme:
1
10083500010100

Den gleichen Telegrammtyp mit anderer Länge:
1
100006000E0400100A37020110FF00A5

Und komplett neue Telegramme:
1
1000BF00109E0000000000000000000000000000000000000000000071


Bei den neuen Modulen (MM50,MM100,SM100 etc.) sieht es ähnlich aus.


//Niffko

von Danny B. (maniac103)


Lesenswert?

Niffko _ schrieb:
> Danny Baumann schrieb:
>> Probiert hat es meines Wissens nach aber noch niemand ...
>
> Aber na klar doch ... ;)

Sehr gut :)

> RC300 wird funktionieren ... wenn auch nicht out-of-the-box.
>
> Es gibt gleiche Telegramme:
>
1
10083500010100

Das hätte ich jetzt bei der Kommunikation mit dem UBA auch erwartet.

> Den gleichen Telegrammtyp mit anderer Länge:
>
1
100006000E0400100A37020110FF00A5

Hatten wir ja auch schon zwischen RC30 und RC35. Der Datensatz sieht 
aber auf den ersten Blick rückwärtskompatibel aus.

> Und komplett neue Telegramme:
>
1
1000BF00109E0000000000000000000000000000000000000000000071

Das hatten wir bei der RC35 auch schon (z.B. für die 
Kontaktinformationen).

Es wird wohl darauf hinauslaufen, dass bei der RC300 jemand den gleichen 
Reversing-Job, den moosy bei der RC35 gemacht hat, machen muss... 
Grundlegende Umstellungen werden wahrscheinlich nicht nötig sein.

von larsrosen (Gast)


Lesenswert?

Was meinst du mit out of the box?
Ich bin gerne bereit zu helfen die befehle raus zi bekommen?

von Niffko (Gast)


Lesenswert?

larsrosen schrieb:
> Was meinst du mit out of the box?

Danny hat es schon ziemlich treffen formuliert:

Danny Baumann schrieb:
> Es wird wohl darauf hinauslaufen, dass bei der RC300 jemand den gleichen
> Reversing-Job, den moosy bei der RC35 gemacht hat, machen muss...
> Grundlegende Umstellungen werden wahrscheinlich nicht nötig sein.

Vielleicht könntest Du ja dieser "Jemand" sein ;)


//Niffko

von Danny B. (maniac103)


Lesenswert?

larsrosen schrieb:
> Was meinst du mit out of the box?

Naja, Basisfeatures (z.B. Sensorwerte des UBA) werden wahrscheinlich 
einfach funktionieren, aber bei allem, was die RC300 selbst betrifft 
(z.B. Schaltprogramme oder neue Features, die das Teil u.U. 
bereitstellt) kann es sein, dass noch zusätzlicher Code in den Collector 
rein muss, damit die RC300 auf den gleichen Stand wie RC30/35 kommt. Bei 
den neuen Modulen gilt das gleiche.

> Ich bin gerne bereit zu helfen die befehle raus zi bekommen?

Na dann mal los ;) Den grundlegenden Ablauf hat moosy hier schon gut 
beschrieben: Beitrag "Re: EMS > Adapter > NetIO > Raspi" - ein 
paar Details haben sich inzwischen aber geändert:
- Der ems-collector muss mit Raw-Kommando-Support gebaut werden (Zeile 3 
des Makefiles auskommentieren, d.h. Raute entfernen)
- Das emsqry-Kommando heißt inzwischen 'raw read <device> <type> 
<offset> <len>' (in moosy's Beispiel 2a ist 0 der Offset und 25 die 
Länge)
- Das emscmd-Kommando heißt inzwischen 'raw write <device> <type> 
<offset> <data0> ... <dataX>'

Für moosy's Punkt 5 melde ich mich freiwillig, wenn Punkt 4 erledigt ist 
;) (d.h. das Telegrammformat aufgedröselt ist).

von larsrosen (Gast)


Lesenswert?

Perfekt das mache ich gerne.

Ich habe mein smd layout jetzt fertig und werde es am we löten.
Wenn ich soweit bin das es halbwegs läuft melde ich mich mit den 
Ergebnissen.

von Sven G. (gruenbacher)


Lesenswert?

Hallo,
brauche mal eure hilfe.
Ich habe den NetIO + Gateway Platine (selbst gebastelt),
software drauf, Raspberry + collector Software.

Wenn ich den Collector von hand starte,
bekomme ich nur

IO: Got bytes 0x45 0x52 0x52 0x4f 0x52 0x3a 0x20 0x43 0x6f 0x6e 0x6e 
0x65 0x63 0x74 0x69 0x6f 0x6e 0x20 0x62 0x6c 0x6f 0x63 0x6b 0x65 0x64 
0xa 00
Error: End of file
IO: Got bytes 0x45 0x52 0x52 0x4f 0x52 0x3a 0x20 0x43 0x6f 0x6e 0x6e 
0x65 0x63 0x74 0x69 0x6f 0x6e 0x20 0x62 0x6c 0x6f 0x63 0x6b 0x65 0x64 
0xa 00
Error: End of file
IO: Got bytes 0x45 0x52 0x52 0x4f 0x52 0x3a 0x20 0x43 0x6f 0x6e 0x6e 
0x65 0x63 0x74 0x69 0x6f 0x6e 0x20 0x62 0x6c 0x6f 0x63 0x6b 0x65 0x64 
0xa 00
Error: End of file
IO: Got bytes 0x45 0x52 0x52 0x4f 0x52 0x3a 0x20 0x43 0x6f 0x6e 0x6e 
0x65 0x63 0x74 0x69 0x6f 0x6e 0x20 0x62 0x6c 0x6f 0x63 0x6b 0x65 0x64 
0xa 00
Error: End of file
...............

Ist das Richtig? Wenn nein, wie kann ich die Komponenten (NetIO+ 
Adapter)
einzeln testen, ohne den Raspberry.

Danke für eure Hilfe.

von Jürgen S. (Firma: privat) (jschmied)


Lesenswert?

Ein Tipp:

IO: Got bytes 0x45 0x52 0x52 0x4f 0x52 0x3a 0x20 0x43 0x6f 0x6e 0x6e
0x65 0x63 0x74 0x69 0x6f 0x6e 0x20 0x62 0x6c 0x6f 0x63 0x6b 0x65 0x64
0xa 00

sind ASCII-Zeichen und bedeuten

"ERROR: Connection blocked??"

was das allerdings bedeutet - keine Ahnung ...

von Danny B. (maniac103)


Lesenswert?

Jürgen Schmied schrieb:
> "ERROR: Connection blocked??"
>
> was das allerdings bedeutet - keine Ahnung ...

Das bedeutet, dass schon jemand anderes auf dem NetIO-EMS-Port hängt - 
der EMS-Code in ethersex akzeptiert nur eine Verbindung. (siehe hier: 
https://github.com/maniac103/ethersex/blob/master/protocols/ems/ems_net.c#L52)

Sven, schau mal, ob du mehrere Collector-Instanzen laufen hast, oder was 
sonst die Verbindung belegt.

von Sven G. (gruenbacher)


Lesenswert?

Hallo Jürgen,
danke für den Tip,
bei meinen versuchen scheint sich ein Client nicht richtig getrennt zu 
haben.
Nachdem ich alles geresettet habe, bleibt das Logfile LEER,
keine Einträge ?????

Ich hbae jetzt mal in die Tabellen geschaut, leider sind die Tabellen 
numeric_data, state_data und boolean_data leer.

Da ich die EMS Adapter selbst gebruzzelt habe, würde ich erstmal gerne 
wissen, ob der funktioniert(beim löten/fädeln kann immer mal ein fehler 
auftreten), aber ein einfachen Funktionstest habe ich nicht gefunden.

Ich kann mal das Oszi in den Keller schleppen und die Signale mal 
nachmessen,
hauptsächlich PIN 1 am LM393 (ich habe die Schaltung 
http://ems-gateway.myds.me/dokuwiki/doku.php?id=wiki:ems:net_io 1:1 
nachgebaut, mit 1..2 kleinen Änderungen C4 ist 1.2nf anstatt 1nf und 
anstatt LM393n habe ich ein lm393)

Ich werde aber erst heute Nachmittag weiter machen können.

mfg.
Sven

von Lars R. (lars_r48)


Lesenswert?

Hmmm
irgendwie komme ich nicht weiter.
Ich habe jetzt alles soweit fertig, mit telnet komme ich auf das GW.
Wenn ich jetzt versuche mit emsclient was zu machen schmeißt der mir das 
ganze script an den kopf?

ich habe es auchmal versucht über den browser aufzurufen, aber auch dort 
bekomme ich nur den Roh text angezeigt?

Vielleicht kann mir ja jemand helfen?

EDIT
folgende struktur
/emsincludes/files   owner root
/var/www/ems/graph  owner www-data (leer)
/var/www/ems/scripte owner www-data
/home/lars/ems/ems-tools/cli owner lars (auch mit sudo kein erfolg)

: Bearbeitet durch User
von Lars R. (lars_r48)


Lesenswert?

ALSO:

Ich weiss jetzt echt nicht warum das so ist, aber bei der datei in 
ems-tools/cli/emsclient
muss es am Anfang:
von original:
1
#!/usr/bin/php
2
<?
3
require("/emsincludes/emsqry.inc");

in
1
#!/usr/bin/php
2
<?PHP
3
require("/emsincludes/emsqry.inc");

geändert werden.

von lars rosenberg (Gast)


Lesenswert?

Kann mir jemand mal ein Ethernet erstellen für ein
Atmega 1284p
Ich bekomme ständig conection losts und muss den avg reseten...

von Fa K. (prof72)


Lesenswert?

Hallo,

in meinem ersten Post geht es mir darum, ein klareres Bild über den 
Gesamtzusammenhang zu gewinnen.
Ich kann trotz intensiver Lektüre leider die Funktionen der 
Einzelkomponenten (noch) nicht klar zuordnen.

Der Adapter ist nur eine Hardwareanpassung (Pegel, Schnittstelle) um die 
EMS-Bus-Signale in verwertbare Signale umzuwandeln.
Jetzt beginnt jedoch meine Konfusion. Das NET-IO ist das nächste 
Bindeglied. Wie genau werden hier die Daten umgesetzt? Was wird wie über 
den (Netz-) Anschluss (ja, ich weiß, über Port...) übertragen bzw. lässt 
sich abrufen?

Mal kurz zu meinen Beweggründen:
Ich betreibe eine Hausautomation via Windows PC mit dem man problemlos 
auch serielle Daten wie z. B. Datentelegramme auswerten kann. (Meinen 
Automower steuere ich seit einigen Jahren damit.)
Meine Intention ist es vor allem den Kessel über diese Schnittstelle zu 
steuern. Wie bekomme ich Datentelegramme aus und fertige Telegramme 
wieder in den EMS-Bus? Wie genau sieht das Protokoll des NET-IO nach 
außen aus?

Wenn ich das richtig verstanden habe, wird doch der Raspi nur zur 
"Weiterverarbeitung" z. B. Visualisierung, Datenmining usw. verwendet. 
Das würde ich über den PC machen...

Hier wäre es (nicht nur für mich) schön, wenn jemand noch einmal einen 
kleinen Abriss über den Datentransfer zwischen Modulen und die Zuordnung 
der Funktionen der einzelnen (logischen) Bestandteile verfassen würde.

Grüße
Fabian

von Jürgen S. (Firma: privat) (jschmied)


Lesenswert?

> Jetzt beginnt jedoch meine Konfusion. Das NET-IO ist das nächste
> Bindeglied. Wie genau werden hier die Daten umgesetzt? Was wird wie über
> den (Netz-) Anschluss (ja, ich weiß, über Port...) übertragen bzw. lässt
> sich abrufen?
Der EMS Bus ist ein BUS d.h. es gibt mehrere Teilnehmer, die nur senden 
dürfen, wenn sie gefragt werden und ein Protokoll einhalten müssen. Das 
macht der NET-IO.

> Wie bekomme ich Datentelegramme aus und fertige Telegramme
> wieder in den EMS-Bus? Wie genau sieht das Protokoll des NET-IO nach
> außen aus?
Steht alles im WIKI. Das Protokoll des NET-IO hier:
http://ems-gateway.myds.me/dokuwiki/doku.php?id=wiki:ems:ems-gw-netio

> Wenn ich das richtig verstanden habe, wird doch der Raspi nur zur
> "Weiterverarbeitung" z. B. Visualisierung, Datenmining usw. verwendet.
> Das würde ich über den PC machen...
Im Prinzip ja. Das Parsen von Telegrammen und die Ausgabe in lesbarer 
Form hab ich auch in Java da - wenns hilft ;-). Ansonsten schau die die 
Sourcen von Collectord an (c++).

vg

Jürgen

: Bearbeitet durch User
von Fa K. (prof72)


Lesenswert?

Hallo Jürgen,

vielen Dank für die Aufklärung. Den verlinkten Abschnitt habe ich 
gelesen. Es war hier aber explizit vom EMS-GW die Rede, welches den 
NET-IO ersetzen soll.

Jetzt verstehe ich erst, das durch die Änderungen die Funktion des 
eigenständigen EMS-GW hier dem NET-IO "nachempfunden" wurde.

Langsam wird die Angelegenheit klarer :)

Da ich bereits ein NET-IO Board habe, brauche ich nur noch das 
Interface.

BTW: hat jemand eventuell noch eine passende Platine zu verkaufen? Am 
besten die von Niffko. Denn wenn man schon mal einen neuen Kessel 
aufstellt, gehören auch gleich eine Hand voll 1-W Sensoren dran :)

Grüße
Fabian

von Karl M. W. (charlie-w)


Angehängte Dateien:

Lesenswert?

Hi,

Fabian Keppler schrieb:
> Da ich bereits ein NET-IO Board habe, brauche ich nur noch das
> Interface.

Naja, der collectord samt db läuft auf dem Raspi oder sonst einem linux 
server.

> hat jemand eventuell noch eine passende Platine zu verkaufen?
Leider nein, ist aber doch kein Hexenwerk, die <drei> Teile zu verlöten. 
Schau Dir doch die Breadboardvorlage noch mal an ;).

> Denn wenn man schon mal einen neuen Kessel
> aufstellt, gehören auch gleich eine Hand voll 1-W Sensoren dran :)

Jepp :). Obgleich das NetIO 1-Wire versteht, habe ich meinen 1-Wire-Bus 
per DS2482-100 an den Raspi angebunden (vgl. Anlage). Am stromversorgten 
Bus hängen 10 Stück DS1820 (Temperatursensoren) und 2 Stück DS2423 
(Zähler für Gas, Wasser und Strom). Läuft seit über zwei Jahren ohne 
Probs.

Gruß aus der Wetterau
Karl M.

von Johnny (Gast)


Lesenswert?

Hi,

bin seit kurzem auf den Thread gestoßen. Genau das was ich gesucht habe!
Nachdem ich bereits einen AVR-NET-IO neben der Heizung habe (12 x 1-wire
+  4 x PT1000 + Steuerung der Zirkulationspumpe über Relais) könnte ich
hier die Anbindung an EMS gleich mit erledigen. Die benötigten Pins an
der EXT-Buchse sind auch noch frei :-)
Den Adpater (Hardwareanpassung) löte ich gerade auf Lochraster.

Kennt jemand von Euch das Solarmodul von Buderus (heisst SM10 glaub ich 
?)
Hängt bei mir ca. 1 m vom Kessel entfernt an der Wand.
An dem SM10 sind 2 Anschlüsse mit der Bezeichnung "EMS" vorhanden.
Der eine Anschluss ist belegt (vermutlich die Verbindung zum Kessel,
bzw. RC30) der andere Anschluß ist frei. Kann ich hier den Adapter
anschließen? Bekomme ich hier alle Daten, also nicht nur die Daten von 
dem SM10 sondern auch von der Heizung?
Ich kenn EMS nicht, aber die Bezeichnung "Bus" lässt mich darauf hoffen,
dass alle (physikalischen) Anschlüsse gleich berechtigt sind?!

Und wenn gerade ein "SM10-Spezialist" ;-) das beantwortet:
Kann ich das SM10-Modul ohne Kessel (also ohne RC30, ...) betreiben?
Die Idee: Im Sommer sollte die Solaranlage reichen um das Wasser
zu erwärmen. Da muss die komplette Heizung nicht ständig im standby 
laufen
(und Strom verbrauchen). Nur was macht das SM10, wenn es nicht mehr über 
EMS kommunizieren kann?

Grüße

     Johnny

von Thomas I. (thomas_i)


Angehängte Dateien:

Lesenswert?

Ich hätte zum Anschluß auch mal eine Frage. Ich habe an der Heizung mal 
die Klappe aufgeschraubt, an der z.B. der externe Temperaturfühler 
angeschlossen wird. Kann hier auch der EMS Bus abgegriffen werden ? Ich 
hänge mal ein Foto der Klemmen an..

von Niffko (Gast)


Lesenswert?

@Thomas
Klemme "RC" ist dein Freund ...


//Niffko

von Niffko (Gast)


Lesenswert?

Johnny schrieb:
> An dem SM10 sind 2 Anschlüsse mit der Bezeichnung "EMS" vorhanden.

Sind elektrisch durchgeschliffen, kannst die 2. Klemme verwenden.

Johnny schrieb:
> Kann ich das SM10-Modul ohne Kessel (also ohne RC30, ...) betreiben?

Manchmal dauert es länger die Frage einzutippen, als einfach mal den 
Busstecker abzuziehen und zu schauen was passiert ;)
Ich hatte mal ein SM10 mit defektem Bus-Interface am Wickel ... hat 
nicht mehr funktioniert.

//Niffko

von Johnny (Gast)


Lesenswert?

Niffko schrieb:
> Johnny schrieb:
>> An dem SM10 sind 2 Anschlüsse mit der Bezeichnung "EMS" vorhanden.
>
> Sind elektrisch durchgeschliffen, kannst die 2. Klemme verwenden.

Danke, hab ich gerade gemacht und es sieht gar nicht mal so schlecht 
aus.
Die grüne LED (meine natürlich die RK_OK LED) blinkt immer wieder mal 
auf.
Über telnet am AVR-NET-IO bekomme ich auch Statistiken vom EMS-Bus:

ems stats
Bytes total:156747
Bytes good:26348
Bytes dropped:0
Packets good:1347
Packets bad:0
Packets 1byte:129053 8657
Packets ack:0 nack:0
Overflow:0
Max fill:3

Ich gehe mal davon aus, das der Selbstbau-Adapter + AVR-NET-IO 
funktionieren.

Kann man eigentlich das noch irgendwie testen?
Es gibt ja nur den Befehl "ems stats" im AVR-NET-IO??

Ein Telnet auf den Port 7950 zeigt mir nur kryptische Zeichen?

Jetzt brauche ich wohl mindestens noch den ems-collector?!

Na dann werf ich mal den Compiler auf meinem Server an ...


>
> Johnny schrieb:
>> Kann ich das SM10-Modul ohne Kessel (also ohne RC30, ...) betreiben?
>
> Manchmal dauert es länger die Frage einzutippen, als einfach mal den
> Busstecker abzuziehen und zu schauen was passiert ;)
> Ich hatte mal ein SM10 mit defektem Bus-Interface am Wickel ... hat
> nicht mehr funktioniert.
So einfach ist das auch nicht bis ich an den EMS-Bus vom SM10 komme:
Keller gehen, Deckel abschrauben, Modul aufschrauben, Stecker ziehen, 
... ;-)

Ok, ich habs probiert, hilft mir aber jetzt am Abend nicht viel weiter.
Das SM10 hat nur eine grüne Lampe, die Betriebsbereitschaft signalisiert
(warscheinlich zeigt die nur an "Strom da ?!)
Wenn ich den EMS-Stecker ziehe leuchtet die grüne Lampe immer noch ??
Was sagt mir das jetzt ?
Hm, ob die Pumpe ohne EMS angesteuert wird kann ich wohl nur bei 
Sonnenschein probieren - hoffentlich gibts am Wochenende Sonne, dann 
probier ich das noch mal...


>
> //Niffko

Johnny

von Thomas I. (thomas_i)


Lesenswert?

@Niffko: Vielen Dank für die Erläuterung der Klemmen. Ich habe an der 
Heizung noch ein Bedienteil RC35 angeschlossen. Kann ich den Bus 
trotzdem an den Klemmen RC abgreifen und das Bedienteil parallel 
betrieben oder sind die Klemmen RC nur für die Fernmontage des 
Bedienteils und ich muß den EMS Bus woanders abgreifen ?

Lg,

Thomas

von IngoF (Gast)


Lesenswert?

Thomas I. schrieb:
> @Niffko: Vielen Dank für die Erläuterung der Klemmen. Ich habe an
> der
> Heizung noch ein Bedienteil RC35 angeschlossen. Kann ich den Bus
> trotzdem an den Klemmen RC abgreifen und das Bedienteil parallel
> betrieben oder sind die Klemmen RC nur für die Fernmontage des
> Bedienteils und ich muß den EMS Bus woanders abgreifen ?
>
> Lg,
>
> Thomas

Ist kein Problem. Einfach anklemmen. Ist alles der selbe Bus an dem die 
Teilnehmer hängen. Man könnte den Bus auch an den Service-Klinkenbuchse 
einstecken.

Gruß
IngoF

von Lars R. (lars_r48)


Lesenswert?

Also irgendwie komme ich nicht weiter.
Ich habe meine Platine selbst gelötet, und auch mittlerweile das Image 
ausm HOWTO fürn Atmega 644 verwendet.

Ich sehe zwar immer wieder die RX Lummi aufleuchten, aber sobald ich 
z.b. ein ww request data mache dauert es ein paar sek, dann kommt Error 
Timeout.

und wenn ich ne weile gar nix mache steigt der ganze collector aus mit 
connection refused?

Kann mir vielleicht noch jemand ein Tip geben wie ich den Aufbau testen 
könnte?
An den Bauteilen kan man ja eigentlich nicht viel falsch machen.
evtl muss ich mal mein Oszi dran hängen und gucken was passiert....


Nur mal so ne Frage am rande:

Muss der Bus Stromlos sein beim hinzufügen des adapters oder kann ich 
die Heizung an lassen.
Bis jetzt mach ich es immer Stromlos aber immer die Heizung an und aus 
hab ich n schlechtes gewissen

: Bearbeitet durch User
von Thomas I. (thomas_i)


Lesenswert?

Hallo,

ich wollte mich nach langem Lesen des Threads mal daran machen und meine 
Platine zusammenlöten. Hat jemand vielleicht eine Bauteilliste ?
Mir fehlt die die Bezeichnung der Diode im Schaltplan

http://ems-gateway.myds.me/dokuwiki/doku.php?id=wiki:ems:net_io

unten links, parallel zu den 3 LEDs ?

Ich versuche gerade den Blackboard Designer unter Ubuntu zu 
installieren, um die Vorlage für den diskreten Aufbau auf 
Lochrasterplatine. Bislang sträubt sich Ubuntu 14.04 noch etwas. Hat 
jemand vielleicht den Schaltplan als PDF ?

von Karl M. W. (charlie-w)


Angehängte Dateien:

Lesenswert?

Thomas I. schrieb:
> Hat jemand vielleicht den Schaltplan als PDF ?
> Mir fehlt die die Bezeichnung der Diode im Schaltplan

Siehe Anhang.
Gutes Gelingen!

Gruß aus der derzeit regennassen Wetterau
Karl M.

von Thomas Ihmann (Gast)


Angehängte Dateien:

Lesenswert?

Vielen Dank !

Ich hänge mal die Bilder und die Teileliste für den Aubau auf einer 
Lochrasterplatine hier an. Vielleicht kann es ja mal jemand gebrauchen 
und muss dann nicht extra den Blackboard Designer installieren, evtl. 
auch fürs Wiki

T. Ihmann

von Johnny (Gast)


Lesenswert?

Vielleicht noch ein Nachtrag zur Stückliste der Schaltung:

Immer schön an die Stückliste halten ;-)

Ich hab den Adapter aus dem Wiki nachgebaut
(http://ems-gateway.myds.me/dokuwiki/doku.php?id=wiki:ems:net_io)

Das Teil hat drei Wochen funktioniert, danach hatte ich einen
"EMS-Busfehler" im RC30-Display und der Adapter war defekt.
Nach dem Abziehen des Selbstbau-Adapters funktionierte auch die Heizung 
wieder.

Bei der Fehlersuche bin ich dann auf eine "kleine Änderung" im
Schaltplan gestoßen: D4 (die Diode nach den 4 Gleichrichterdioden, die 
negative Spannungen gegen Masse ableitet), war bei mir keine BAT42 
sondern eine BAT41 (hatte ich gerade in der Bastelkiste). Und diese D4 
ist optisch und meßtechnisch defekt!
Wenn man die verschiedenen aber ähnliche Schaltpläne betrachtet werden 
da unterschiedliche Dioden verwendet; BAT42, BAT46, BAT54. Ein Vergleich 
der Datenblätter zeigt dann, dass der maximale Strom bei allen Typen 
größer 150 mA ist.
(BAT42: 200mA; BAT46: 150 mA; BAT54: 200 mA).
Leider kann meine verwendete BAT41 nur 100mA :-(
Die Vermutung liegt also nahe, dass über den EMS-Bus da mehr als 100 mA
durch die Diode fließen.
Ich hab im Internet nach den technischen Daten des EMS-Buses gesucht 
aber nichts gefunden. Nach dem 220 Ohm / 1 Watt - Widerstand im 
Sendeteil zu urteilen hätte ich gedacht dass hier maximal
I = SQR(P / R) = SQR(1 W / 220 Ohm) = 68 mA fließen ?!
OK, wenn x Teilnehmer am Bus gleichzeitig versuchen zu senden bekomme 
ich
dann x * 68 mA ??!!
Reicht dann eine BAT46? Oder sollte man doch lieber gleich zu einer 
SB160 (1N5819) greifen?

Oder war das eine "unplanmäßige Überlast"? (Spannungs- bzw. Stromspitze)
Hatte von denen, die das Teil schon seit längerer Zeit betreiben, schon 
mal solche Probleme, bzw. welche Dioden habt ihr eingesetzt?

bye
     Johnny

von Karl M. W. (charlie-w)


Lesenswert?

Hi Johnny,

der Schaltplan im Wiki ist (m)eine Anpassung von Niffkos "Abkupferung" 
eines MM10-Moduls an einen leicht aufzubauenden through hole Entwurf.
Die Belastbarkeit der thru hole Bauteile wurde auf die in Niffkos Plan 
genannten smd Bauteile abgestimmt.
Sonderliche Gedanken habe ich mir dabei nicht gemacht! Ob jetzt z.B. die 
4 parallelen smd Widerstände tatsächlich je 1/4 Watt Belastbarkeit 
haben, konnte ich aus Niffkos Schaltplan ja nicht entnehmen. Also bin 
ich bei der Empfehlung zum 1 Watt Widerstand von Standardwerten 
ausgegangen. Darauf (D)eine Stromberechnung aufzubauen ist m.E. ebenso 
charmant wie gewagt. ;) Aber theoretisch stimme ich Dir zu. Nur, mehr 
als die "theoretischen" 68 mA gehen nicht, selbst wenn im Bus Tango 
getanzt wird. ;-) Insoweit hätte die 100 mA Schottky "halten" müssen.

Kurzum: Habe hier eine (Bastelkeller) BAT42 (200mA) verbaut, wie auch in 
der Graetzschaltung. Das läuft seit ca. 9 Monaten problemlos.

Mehr vermag ich dazu auch nicht zu sagen, sorry! Aber hier gibt es kluge 
Menschen, da kommt bestimmt noch was.

Gruß aus der jetzt wieder vorsommerlichen Wetterau
Karl M.

von Johnny (Gast)


Lesenswert?

Hi Karl,

meine Berechnug war mehr als gewagt :-)
Ohne nähere Informationen über den EMS-Bus lässt sich über die
maximale Stromstärke wenig sagen. Ich habe jetzt aus meiner Bastelkiste 
eine SB160 eingesetzt -  damit sollte ich auf jeden Fall auf der 
sicheren Seite sein (max. 1 A).
Dennoch dazu ein paar Überlegungen:
Die 68 mA sind ja der Maximalstrom durch den 1W- Widerstand bei 220 Ohm.
Allerdings wenn mehrere Busteilnehmer gleichzeitig den 220 Ohm  mit dem
Transistor gegen Masse schalten, addieren sich die Ströme - immer 
vorausgesetzt alle Busteilnehmer verwenden die gleiche Schaltung.
Was mir allerdings komplett fehlt ist die Speisung des Busses.
Irgendwoher muss der Strom ja kommen :-)
Also ohne genaue Spezifikation ist das wie bereits erwähnt, mehr als 
gewagt.
Und nochwas: Wenn da mehr als 100mA durch die Diode vom Bus kam, musste
das dann auch durch die Gleichrichterschaltung - und die besteht bei mir 
auch aus Dioden vom Typ BAT41 :-|
Aber die haben überlebt! Also vermutlich doch "Materialfehler" :-)

Grüße aus dem sonnigen Franken.

Johnny



Charlie W. schrieb:
> Hi Johnny,
>
> der Schaltplan im Wiki ist (m)eine Anpassung von Niffkos "Abkupferung"
> eines MM10-Moduls an einen leicht aufzubauenden through hole Entwurf.
> Die Belastbarkeit der thru hole Bauteile wurde auf die in Niffkos Plan
> genannten smd Bauteile abgestimmt.
> Sonderliche Gedanken habe ich mir dabei nicht gemacht! Ob jetzt z.B. die
> 4 parallelen smd Widerstände tatsächlich je 1/4 Watt Belastbarkeit
> haben, konnte ich aus Niffkos Schaltplan ja nicht entnehmen. Also bin
> ich bei der Empfehlung zum 1 Watt Widerstand von Standardwerten
> ausgegangen. Darauf (D)eine Stromberechnung aufzubauen ist m.E. ebenso
> charmant wie gewagt. ;) Aber theoretisch stimme ich Dir zu. Nur, mehr
> als die "theoretischen" 68 mA gehen nicht, selbst wenn im Bus Tango
> getanzt wird. ;-) Insoweit hätte die 100 mA Schottky "halten" müssen.
>
> Kurzum: Habe hier eine (Bastelkeller) BAT42 (200mA) verbaut, wie auch in
> der Graetzschaltung. Das läuft seit ca. 9 Monaten problemlos.
>
> Mehr vermag ich dazu auch nicht zu sagen, sorry! Aber hier gibt es kluge
> Menschen, da kommt bestimmt noch was.
>
> Gruß aus der jetzt wieder vorsommerlichen Wetterau
> Karl M.

von Ingo F. (ingof)


Lesenswert?

Johnny schrieb:
> Die Vermutung liegt also nahe, dass über den EMS-Bus da mehr als 100 mA
> durch die Diode fließen.

Meiner Meinung nach ist dem nicht so.
Die Diode D4 wird in Sperrrichtung betrieben. Also im Normalfall fließt 
dort kein Strom. Ein Verpolen ist auch nicht möglich weil die Diode D4 
durch den Gleichrichter D1-D3 und D5 geschützt ist. Es fließt also nur 
ein Strom wenn Zum Beispiel eine "Überspannung" oder ähnliches auf dem 
Bus liegt.

Johnny schrieb:
> Die 68 mA sind ja der Maximalstrom durch den 1W- Widerstand bei 220 Ohm.
> Allerdings wenn mehrere Busteilnehmer gleichzeitig den 220 Ohm  mit dem
> Transistor gegen Masse schalten, addieren sich die Ströme - immer
> vorausgesetzt alle Busteilnehmer verwenden die gleiche Schaltung

Der "Original"-Widerstand sind 227,5 Ohm (910/4) damit dürften bei 12 
Volt nur 53mA fließen. Aber nur wärend ein Busteilnehmer den Pegel 
sendet. Da nur ein Busteilehmer senden kann (Polling) wird auch nie mehr 
Strom gezogen.

Johnny schrieb:
> Was mir allerdings komplett fehlt ist die Speisung des Busses.

Der Bus wird über die Heizung mit Strom versort (MC10?). Ohne die 
Heizung wird also auf dem Bus nichts laufen

Gruß
IngoF

: Bearbeitet durch User
von Johnny (Gast)


Lesenswert?

>>
>> Johnny schrieb:
>>> Kann ich das SM10-Modul ohne Kessel (also ohne RC30, ...) betreiben?
>>
>> Manchmal dauert es länger die Frage einzutippen, als einfach mal den
>> Busstecker abzuziehen und zu schauen was passiert ;)
>> Ich hatte mal ein SM10 mit defektem Bus-Interface am Wickel ... hat
>> nicht mehr funktioniert.
> So einfach ist das auch nicht bis ich an den EMS-Bus vom SM10 komme:
> Keller gehen, Deckel abschrauben, Modul aufschrauben, Stecker ziehen,
> ... ;-)
>
> Ok, ich habs probiert, hilft mir aber jetzt am Abend nicht viel weiter.
> Das SM10 hat nur eine grüne Lampe, die Betriebsbereitschaft signalisiert
> (warscheinlich zeigt die nur an "Strom da ?!)
> Wenn ich den EMS-Stecker ziehe leuchtet die grüne Lampe immer noch ??
> Was sagt mir das jetzt ?
> Hm, ob die Pumpe ohne EMS angesteuert wird kann ich wohl nur bei
> Sonnenschein probieren - hoffentlich gibts am Wochenende Sonne, dann
> probier ich das noch mal...
>
>
>>
>> //Niffko
>

Nachtrag zur Info (vielleicht kanns ja jemand brauchen):
Ich hab das heute bei perfektem "Testwetter" (abwechselnd Sonne und 
dunkle Wolken) noch mal genauer probiert:

Das SM10 arbeitet ohne RC30! Nach Abziehen der EMS-BUS-Verbindung blinkt 
nach mehreren Sekunden die grüne Lampe am SM10 und das RC30 zeigt im 
Display: "Keine Verbindung SOLAR". Die LED-Anzeige zeigt Fehler "A51".
Die Solarpumpe wird aber auch ohne EMS-Verbindung angesteuert. Je nach 
Temperatur im Warmwasserboiler und in den Kollektoren wird die Pumpe mit 
unterschiedlicher Leistung angesteuert. Soweit ich das beobachten konnte 
wird die Pumpe "getaktet" (geschätzte 5 Hz).

mfg
     Johnny

von Niffko (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Johnny,

deine Beobachtungen decken sich mit den Angaben in der Service-Unterlage 
des Moduls (siehe Anhang).


Niffko schrieb:
> ... SM10 mit defektem Bus-Interface ... hat nicht mehr funktioniert.

da war dann wohl noch etwas anderes geschrottet ...


// Niffko

von whopperg (Gast)


Lesenswert?

Hi Leute,

Ich versuche mir gerade die Bauteile für den NetIO EMS-Adapter aus dem 
EMS-Wiki zusammen zu suchen 
(http://ems-gateway.myds.me/dokuwiki/doku.php?id=wiki:ems:net_io). Nur 
hab ich leider keinen Plan wo ich die Teile am besten her bekomme. Habe 
bei den Klassikern die ich noch aus meiner "Jugendzeit" kenne (conrad, 
elv usw) fast keine der Bauteile finden können.

Ich habe mir über Eagle die Partlist exportiert und versucht anhand der 
Bezeichnungen die Sachen zu finden - quasi ohne Erfolg.

Part     Value          Device          Package      Library 
Sheet

C1       100n           C5/3            C5B3         capacitor-wima  1
C2       10n            C5/3            C5B3         capacitor-wima  1
C3       1.5n           C5/3            C5B3         capacitor-wima  1
C4       1n             C5/3            C5B3         capacitor-wima  1
C5       10u            C5/3            C5B3         capacitor-wima  1
C6       68p            C-EU025-050X050 C025-050X050 resistor        1
D1       BAT42          BAT42           DO35-10      diode           1
D2       BAT42          BAT42           DO35-10      diode           1
D3       BAT42          BAT42           DO35-10      diode           1
D4       BAT42          BAT42           DO35-10      diode           1
D5       BAT42          BAT42           DO35-10      diode           1
IC1      LM393N         LM393N          DIL08        linear          1
IN       EMS            FFKV3           FFKV3        con-phoenix-508 1
J1       1-Wire         215877-4        215877-4     !kmw            1
L1       4.7uH          MICC12          MICC12       inductors       1
L2       4.7uH          MICC12          MICC12       inductors       1
NETIO                   MA05-2          MA05-2       con-lstb        1
R1       330R           R-EU_0207/10    0207/10      resistor        1
R2       330R           R-EU_0207/10    0207/10      resistor        1
R3       330R           R-EU_0207/10    0207/10      resistor        1
R4       4K7            R-EU_0207/10    0207/10      resistor        1
R5       4K7            R-EU_0207/10    0207/10      resistor        1
R6       4K7            R-EU_0207/10    0207/10      resistor        1
R7       100K           R-EU_0207/10    0207/10      resistor        1
R8       360R           R-EU_0207/10    0207/10      resistor        1
R9       10K            R-EU_0207/10    0207/10      resistor        1
R10      47K            R-EU_0207/10    0207/10      resistor        1
R11      910R           R-EU_0207/10    0207/10      resistor        1
R12      910R           R-EU_0207/10    0207/10      resistor        1
R13      910R           R-EU_0207/10    0207/10      resistor        1
R14      10K            R-EU_0207/10    0207/10      resistor        1
R15      910R           R-EU_0207/10    0207/10      resistor        1
RX_FAIL                 LED3MM          LED3MM       led             1
RX_OK                   LED3MM          LED3MM       led             1
T1       BC847B         -NPN-TO92L      TO92L        transistor      1
TX                      LED3MM          LED3MM       led             1

Hat vielleicht jemand noch eine alte Bestellliste und/oder einen Shop wo 
ich die Teile herbekommen kann?

Was für eine Lochplatinen größe/format bräuchte ich für den Adapter? Und 
vielleicht noch eine Empfehlung für ein Netzteil, dann bin ich glaub ich 
glücklich ;-)

(Freu mich schon drauf endlich mal wieder "rum zu löten" ;-) )

Grüße aus dem Münsterland,

von Jürgen S. (Firma: privat) (jschmied)


Lesenswert?

Hmm, Reichelt hat eigentlich alles. Das ist mein Warenkorb, als ich die 
Teile für das Interface bestellt habe:

AWG 28-10G 3M  Flachbandkabel AWG28, 10-pol., grau, 3m-Ring  2,35 € 
2,30 €  1  1
PFL 10  Pfostenbuchse, 10-polig, mit Zugentlastung  0,08 €  0,08 €  1  1
MPE 087-1-006  Stiftleisten 2,54 mm, 1X06, gerade  0,15 €  0,15 €  1  1
WSL 10G  Wannenstecker, 10-polig, gerade  0,08 €  0,08 €  1  1
MPE 094-1-006  Buchsenleisten 2,54 mm, 1X06, gerade  0,25 €  0,27 €  1 
1
MPE 115-1-006  Präz.-Buchsenleisten 2,54 mm, 1X06, gerade  0,42 €  0,45 
€  1  1
MCP 2551-I/P  High Speed CAN Transceiver, DIP-8  0,98 €  1,10 €  1  1
LM 393 DIP  Komparator, 2-fach, DIP-8  0,16 €  0,16 €  1  2
BAT 43  Schottky Diode, DO35, 30V, 0,2A  0,04 €  0,04 €  1  4
BC 337-40  Transistor NPN TO-92 45V 0,5A 0,625W  0,04 €  0,04 €  1  4
1N 4148  Planar Epitaxial Schaltdiode, DO35, 100V, 0,15A  0,02 €  0,02 € 
1  8
BAT 46  Schottky Diode, DO35, 100V, 0,15A  0,05 €  0,06 €  1  2
µA 78L05  Spannungsregler 0,1A positiv, TO-92  0,11 €  0,11 €  1  4
SIM1-0505 SIL4  DC/DC-Wandler, SIL 4, 1 W, in 5 V/out 5 V  3,25 €  3,25 
€  1  1
FT 23-77  Ferritring 5977000101  0,58 €  0,58 €  1  2
NT 04  Dip-Schalter, stehend, 4-polig  0,29 €  0,25 €  1  2
P6KE 36A  Überspannungsschutzdiode  0,14 €  0,15 €  1  2
Z5U-5 100N  Vielschicht-Keramikkondensator 100N, 20%  Z.Zt nicht 
lieferbar.  Z.Zt nicht lieferbar.  1  10
L-MICC 1,5µ  Festinduktivität, axial, MICC, Ferrit 1,5µ  0,19 €  0,19 € 
1  2
SMCC 4,70µ  Drosselspule, Festinduktivität, axial, 4,70µ  0,17 €  0,17 € 
1  2
KERKO 68P  Keramik-Kondensator 68P  0,06 €  0,06 €  1  2
X7R-5 1,0N  Vielschicht-Keramikkondensator 1,0N, 10%  0,07 €  0,05 €  1 
2
RAD 10/35  Elektrolytkondensator, 5x11mm, RM 2,0mm  0,04 €  0,04 €  1  4
RAD 105 47/35  Elektrolytkondensator, 105°C, RM 2,0mm  0,04 €  0,04 €  1 
4
BC 546B  Transistor NPN TO-92 65V 0,1A 0,5W  0,04 €  0,04 €  1  4
KERKO 10N  Keramik-Kondensator 10N  0,06 €  0,06 €  1  5
MKS-2 330N  WIMA Folienkondensator, Rm 5mm, 330nF  0,13 €  0,12 €  1  4
ADUM 1201 AR  Digital-Isolator, 2-Kanal, low power, SO-8  3,20 €  2,50 € 
1  2
BL 1X20G8 2,54  20pol. Buchsenleiste, gerade, RM 2,54, H: 8,5mm  0,31 € 
0,32 €  1  3
SL 1X40G 2,54  40pol. Stiftleiste, gerade, RM 2,54  0,18 €  0,26 €  1  4
METALL 100K  Metallschichtwiderstand 100 K-Ohm  0,08 €  0,05 €  1  10
METALL 10,0K  Metallschichtwiderstand 10,0 K-Ohm  0,08 €  0,05 €  1  10
METALL 120  Metallschichtwiderstand 120 Ohm  0,08 €  0,05 €  1  10
METALL 1,00K  Metallschichtwiderstand 1,00 K-Ohm  0,08 €  0,05 €  1  10
METALL 270  Metallschichtwiderstand 270 Ohm  0,08 €  0,05 €  1  10
METALL 330  Metallschichtwiderstand 330 Ohm  0,08 €  0,05 €  1  10
METALL 390  Metallschichtwiderstand 390 Ohm  0,08 €  0,05 €  1  10
METALL 470  Metallschichtwiderstand 470 Ohm  0,08 €  0,05 €  1  10
METALL 47,0K  Metallschichtwiderstand 47,0 K-Ohm  0,08 €  0,05 €  1  10
METALL 4,70K  Metallschichtwiderstand 4,70 K-Ohm  0,08 €  0,05 €  1  10
METALL 560  Metallschichtwiderstand 560 Ohm  0,08 €  0,05 €  1  10
METALL 910  Metallschichtwiderstand 910 Ohm  0,08 €  0,05 €  1  10

: Bearbeitet durch User
von whopperg (Gast)


Lesenswert?

Hi Jürgen,

Danke dir für die Liste! - dann leg ich mal mit der Bestellung los ;-)

Grüße

von whopperg (Gast)


Lesenswert?

Hi,
habe doch noch Erklärungsbedarf ;-) Kann es sein das du generell noch 
andere Bauteile mitbestellt hast? Ich kann einige nicht zum Schaltplan 
zuordnen:

Bestellnr        Bezeichnung                                        Stk
BL 1X20G8 2,54   20pol. Buchsenleiste, gerade, RM 2,54, H: 8,5mm    3
MPE 094-1-006    Buchsenleisten 2,54 mm, 1X06, gerade               1
SIM1-0505 SIL4   DC/DC-Wandler, SIL 4, 1 W, in 5 V/out 5 V          1
ADUM 1201 AR     Digital-Isolator, 2-Kanal, low power, SO-8         2
NT 04            Dip-Schalter, stehend, 4-polig                     2
RAD 105 47/35    Elektrolytkondensator, 105°C, RM 2,0mm             4
RAD 10/35        Elektrolytkondensator, 5x11mm, RM 2,0mm            4
FT 23-77         Ferritring 5977000101                              2
L-MICC 1,5µ      Festinduktivität, axial, MICC, Ferrit 1,5µ         2
METALL 1,00K     Metallschichtwiderstand 1,00 K-Ohm                 10
METALL 120       Metallschichtwiderstand 120 Ohm                    10
METALL 270       Metallschichtwiderstand 270 Ohm                    10
METALL 390       Metallschichtwiderstand 390 Ohm                    10
METALL 470       Metallschichtwiderstand 470 Ohm                    10
METALL 560       Metallschichtwiderstand 560 Ohm                    10
BAT 46           Schottky Diode, DO35, 100V, 0,15A                  2
BC 337-40        Transistor NPN TO-92 45V 0,5A 0,625W               4
BC 546B          Transistor NPN TO-92 65V 0,1A 0,5W                 4
MCP 2551-I/P     High Speed CAN Transceiver, DIP-8                  1
1N 4148          Planar Epitaxial Schaltdiode, DO35, 100V, 0,15A    8
µA 78L05         Spannungsregler 0,1A positiv, TO-92                4
P6KE 36A         Überspannungsschutzdiode                           2
MKS-2 330N       WIMA Folienkondensator, Rm 5mm, 330nF              4

Was ich zuordnen konnte ist folgendes:
Bestellnr        Bezeichnung                         Bez. Schaltplan Stk
SMCC 4,70µ       Drosselsp., Festind., axial, 4,70µ  4.7uH           2
MKS-4-100 10µ    FOLIEN-KONDENSATOR 10               10u             1
KERKO 10N        Keramik-Kondensator 10N             10n             1
KERKO 1,5N       Keramik-Kondensator 1,5N            1.5n            1
KERKO 68P        Keramik-Kondensator 68P             68p             1
LM 393 DIP       Komparator, 2-fach, DIP-8           LM393N          1
METALL 10,0K     MSW 10,0 K-Ohm                      10K             2
METALL 100K      MSW 100 K-Ohm                       100K            1
METALL 330       MSW 330 Ohm                         330K            3
METALL 4,70K     MSW 4,70 K-Ohm                      4K7             3
METALL 47,0K     MSW 47,0 K-Ohm                      47K             1
METALL 910       MSW 910 Ohm                         910R            4
BAT 43           Schottky Diode, DO35, 30V, 0,2A     BAT42           5
X7R-5 1,0N       VS-Keramikkondensator 1,0N, 10%     1n              1
Z5U-5 100N       VS-Keramikkondensator 100N, 20%     100n            1

Vielen Dank noch mal für die Hilfe!

von jschmied (Gast)


Lesenswert?

Ja, da war noch ein can-Interface und Zeug für den PIC18F dabei.

vg

Jürgen

von whopperg (Gast)


Lesenswert?

Hi,

Bin gerade dabei schon mal den ems-collector zu installiern. (aus 
maniacs, also vermutlich dannys git 
https://github.com/maniac103/ems-collector )

collectord an sich startet (also mit -h) und liegt unter 
/usr/local/sbin.
Die init datei liegt im /etc/init.d/ems-collector

Die config datei liegt unter /etc/default/ems-collector, in welcher nur 
das PIDFILE und die OPTIONS konfiguriert sind:
-------------------------------------------------------------------
# Defaults file for EMS collector daemon
# This is a POSIX shell fragment

# config file location
#CONFIGFILE="/etc/ems-collector.conf"

# Serial device file
#SERIALDEVICE="/dev/ttyUSB0"

# Where to put the PID file
PIDFILE="/var/run/ems-collector.pid"

# Other options
OPTIONS="-C 7777 -D 7778 -u ems -p emscollector -r 60 
tcp:192.168.100.200:7950 -d all=/var/log/ems-collector.log"
------------------------------------------------------------------

Wenn ich jetzt versuche das init script zu starten erhalte ich folgende 
meldung:

------------------------------------------------------------------
/etc/init.d/ems-collector start
[....] Starting EMS collector daemon: collectordterminate called after 
throwing an instance of 
'boost::exception_detail::clone_impl<boost::exception_detail::error_info 
_injector<boost::program_options::invalid_command_line_syntax>  >'
  what():  the required argument for option '--file' is missing
Aborted
 failed!
------------------------------------------------------------------

Mit moosys git hab ich das gleiche problem...

ich kriegs nicht auf die kette ;-)

von Danny B. (maniac103)


Lesenswert?

In meiner /etc/default/ems-collector steht das hier:

# Defaults file for EMS collector daemon
# This is a POSIX shell fragment

# config file location
CONFIGFILE="/etc/ems-collector.conf"

# Serial device file
SERIALDEVICE="tcp:192.168.100.30:7950"

# Where to put the PID file
PIDFILE="/var/run/ems-collector.pid"

# Other options
OPTIONS=""



Und in /etc/ems-collector.conf das hier:

ratelimit = 120
db-user = emsdata
db-pass = emsdata
command-port = 7777
data-port = 7778


Das funktioniert und ist besser lesbar :)
Die Debug-Option kannst du in OPTIONS lassen; das eigentliche Problem 
ist, dass das Target (also "tcp:...") an's Ende der Kommandozeile muss.

von whopperg (Gast)


Lesenswert?

Wenn ich den collectord zu fuß mit den parametern starte, scheint es 
keine probleme zu geben:

# collectord --pid-file=/var/run/ems-collector.pid -C 7777 -D 7778 -u 
ems -p emscollector -r 60 tcp:192.168.100.200:7950 -d 
all=/var/log/ems-collector.log

Allerdings natürlich auch keinen output.
# ps -A |grep collectord
17517 ?        00:00:00 collectord
nun ja - es scheint doch tatsächlich am init-script zu liegen....

von whopperg (Gast)


Lesenswert?

Hi danny!

dank dir für die schnelle antwort!

recht hatta ;-) kaum macht mans richtig, klappts auch ;-)

nun dann müsste das wiki noch mal angepasst werden - denn wie dort 
beschrieben scheint es zumindest bei mir nicht zu funktionieren.

ich schau mal ob ich das dort korrigieren kann.

grüße und schon mal ein schönes und angenehmens pfingswochenende!

von Andre G. (whopperg)


Angehängte Dateien:

Lesenswert?

Icke bins nochmal ;-)

Könnte mir bitte noch jemand die zweit Rot umrandeten Bauteile 
identifizieren? (genaue Modellbezeichnung wäre super).
(Quelle: 
http://ems-gateway.myds.me/dokuwiki/lib/exe/detail.php?id=wiki%3Aems%3Anet_io&media=wiki:ems:ems-adapter.jpg)

Ich glaube dann hab ich so langsam alles beinander.

: Bearbeitet durch User
von Karl M. W. (charlie-w)


Lesenswert?

Andre Geheim schrieb:
> die zweit Rot umrandeten Bauteile identifizieren?

Hi,

C4 = Elko 10u bipolar [1]
C5 = Kond 1n [2]

hth

Gruß aus der Wetterau
Karl M.


zB.: bei Reichelt:

[1]
http://www.reichelt.de/TON-10-63/3/index.html?&ACTION=3&LA=446&ARTICLE=21640&artnr=TON+10%2F63&SEARCH=10+u+bipolar

[2]
http://www.reichelt.de/Wima-FKS2-FKC2-FKP2/FKS-2-1-0N/3/index.html?&ACTION=3&LA=2&ARTICLE=7793&GROUPID=3151&artnr=FKS-2+1%2C0N

Auf dem Bild ist es ein 1.8nF high-voltage Kellerfund. No probs.

von Andre G. (whopperg)


Lesenswert?

Dank dir! Dann Bestell ich jetzt mal. ;-)

Grüße aus dem Münsterland

: Bearbeitet durch User
von Ingo F. (ingof)


Lesenswert?

Leider habe ich gerade Probleme mit dem DynDNS.

Im Moment ist das Wiki hier erreichbar:
http://ems-gateway.diskstation.eu/dokuwiki/

Gruß
IngoF

von Fabian K (Gast)


Lesenswert?

Hallo Ingo.

Auch wenn ot, ich muss da einfach mal loben: Klasse Service!

Gruß
Fabian

von Andre G. (whopperg)


Angehängte Dateien:

Lesenswert?

Hi!

Ich hab's doch tatsächlich geschafft! Adapter ist fertig, net-io läuft! 
Danke noch mal an alle die mir geholfen haben und natürlich auch an die 
Entwickler! Großes Lob!


Nun noch ein Paar Dinge die ich mir nicht ganz erklären kann:

Ems-Collector läuft (Danke Danny ;-)) Ich bekomme auch Daten.
Im PHP-Webinteface von Moosy sehe ich auch Diverse Daten.

Allerdings fehlen mir die Daten der beiden Heizkreise.
Kesselausgang und Rücklauf Temp's werden auch nicht angezeigt 
(unavailbe).
Raumtemperatur fehlt auch.

Ich habe eine GB-172-14 (und eine RC300 System-Bedieneinheit) mit 
Solarkollektoren. Daten zum UBA, BC und RC stehen im angehängten 
Screenshot.

Hier noch ein Auszug aus der EMS-Collector Debug-Log:

IO: Got bytes 0xaa 0x55 0xa 0x10 00 0xff 0xd 0x1 0xa5 0x2 0x84 0x3 0xd 
0xce
MESSAGE[16.06.2014 13:02:50]: source 0x10, dest 0x00, type 0xff, offset 
13, data: 0x01 0xa5 0x02 0x84 0x03 0x0d
DATA: Unhandled message received(source 0x10, type 0xff).

IO: Got bytes 0xaa 0x55 0xa 0x10 00 0xff 0xd 0x1 0xa6 0x2 0x84 0x3 0xd 
0xcd
MESSAGE[16.06.2014 13:02:51]: source 0x10, dest 0x00, type 0xff, offset 
13, data: 0x01 0xa6 0x02 0x84 0x03 0x0d
DATA: Unhandled message received(source 0x10, type 0xff).

IO: Got bytes 0xaa 0x55 0x12 0x30 00 0xff 00 0x2 0x8e 00 00 0x1 0x4b 00 
00 00 0x21 00 00 0x33 0x7b 0x60
MESSAGE[16.06.2014 13:02:55]: source 0x30, dest 0x00, type 0xff, offset 
0, data: 0x02 0x8e 0x00 0x00 0x01 0x4b 0x00 0x00 0x00 0x21 0x00 0x00 
0x33 0x7b
DATA: Unhandled message received(source 0x30, type 0xff).

IO: Got bytes 0xaa 0x55 0x5 0x30 0x8 0x35 0x2 00 0xf
MESSAGE[16.06.2014 13:02:56]: source 0x30, dest 0x08, type 0x35, offset 
2, data: 0x00
DATA: Unhandled message received(source 0x30, type 0x35).

IO: Got bytes 0xaa 0x55 0x11 0x8 00 0x7 00 0xb 0x1 00 0x2 00 0x1 00 00 
00 00 00 00 00 0x6
MESSAGE[16.06.2014 13:02:59]: source 0x08, dest 0x00, type 0x07, offset 
0, data: 0x0b 0x01 0x00 0x02 0x00 0x01 0x00 0x00 0x00 0x00 0x00 0x00 
0x00
DATA: Unhandled message received(source 0x08, type 0x07).

IO: Got bytes 0xaa 0x55 0x7 0x21 0x8 0x1a 00 00 00 00 0x33 0xaa 0x55 0xf 
0x21 00 0xff 00 0x1 0xd8 0x1 0x2 00 0x1 0x2c 0x16 00 00 0x8 0x37
MESSAGE[16.06.2014 13:03:18]: source 0x21, dest 0x08, type 0x1a, offset 
0, data: 0x00 0x00 0x00
DATA: Unhandled message received(source 0x21, type 0x1a).

IO: Got bytes 0xaa 0x55 0xa 0x30 00 0xff 00 0x2 0x66 0x1 0x62 00 0x12 
0xda
MESSAGE[16.06.2014 13:03:28]: source 0x30, dest 0x00, type 0xff, offset 
0, data: 0x02 0x66 0x01 0x62 0x00 0x12
DATA: Unhandled message received(source 0x30, type 0xff).

IO: Got bytes 0xaa 0x55 0x19 0x8 00 0x2a 00 00 00 00 00 00 00 00 00 0xcf 
00 00 0x80 00 00 0x80 00 0x80 00 0x80 00 00 0xed
MESSAGE[16.06.2014 13:03:38]: source 0x08, dest 0x00, type 0x2a, offset 
0, data: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xcf 0x00 0x00 0x80 
0x00 0x00 0x80 0x00 0x80 0x00 0x80 0x00 0x00
DATA: Unhandled message received(source 0x08, type 0x2a).

Grüße

von Ingo F. (ingof)


Lesenswert?

Hsllo,

der EMS-Gateway ist wieder über seine richtige Adresse erreichbar:
http://ems-gateway.myds.me

Gruß
IngoF

: Bearbeitet durch User
von Andre G. (whopperg)


Lesenswert?

Hi,

Ich glaube ich habe den "Fehler" gefunden. Ich habe einen BC-25 als 
Basiscontroller am Kessel selbst.

Anscheinend sind hier einige Telegramme anders... Kein Wunder das mir 
ein paar Daten fehlen ;-)

Und das ich als Raumbediengerät eine RC-300 habe, macht es auch nicht 
einfacher :-)

Mal schauen ob ich es in meinen 2 Wochen schaffe in das EMS-Telegramm 
Thema rein zukommen.

Vielleicht finde ich ja die Kandidaten zum erweitern des EMS-Collectors.

Grüße

von Lars R. (lars_r48)


Angehängte Dateien:

Lesenswert?

also irgendwie komm ich mal wieder nicht weiter.

Die platine läuft bei mir ohne Probleme verbindung klappt bekomme auch 
übers telnet alles hin.

Jetzt versuche ich als Mosis Werk zum laufen zu bringen aber wenn ich 
die ems-tools starte geht kommt:
getversion
1
[ Gems:/> getversion
2
collector version: 2014031201
3
UBA version: 3.06
4
BC10 version: 2.03
5
RC version: 11.05
6
OK
7
[ Gems:/>

req uba:
1
heater maintenancedate = 2004-01-01 
2
PHP Warning:  mktime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/lars/ems/ems-tools/cli/emsclient on line 84
3
PHP Warning:  mktime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/lars/ems/ems-tools/cli/emsclient on line 84

req UBA erledigt mit setzen der Timezone in
/etc/php5/cli/php.ini
date.timezone = " Europe/Berlin"

nun
1
MS-Client V0.1 (c) 2014 by Michael Moosbauer
2
Connecting to EMS-Bus... OK!
3
[ Gems:/> req bau
4
[ Gems:/> req uba
5
heater targettemperature = 7 
6
ww targettemperature = 10 
7
heater currenttemperature = 58.8 
8
returnflow currenttemperature = 64.5 
9
ww currenttemperature = 56.2 
10
heater settemperature = 90 
11
flamecurrent = 0.1 
12
pressure = 1 
13
burner currentmodulation = 0 
14
burner minmodulation = 0 
15
heaterpump minmodulation = 30 
16
burner maxmodulation = 100 
17
heaterpump maxmodulation = 91 
18
burner targetmodulation = 0 
19
heater onhysteresis = -6 
20
heater offhysteresis = 6 
21
warmwaterminutes = 60589 
22
warmwaterpreparations = 2295 
23
heater maintenanceintervalin100hours = 60 
24
antipendelminutes = 10 
25
heaterpump followupminutes = 5 
26
flameactive = off 
27
heateractive = off 
28
ignitionactive = off 
29
heater pumpactive = off 
30
zirkpumpactive = off 
31
3wayonww = off 
32
ww onetimeload = off 
33
ww desinfectionactive = off 
34
ww boostcharge = off 
35
warmwaterpreparationactive = off 
36
warmwatertempok = on 
37
ww daymode = off 
38
zirkpump daymode = on 
39
heater masterswitch = on 
40
warmwatersystemtype = large 
41
heater maintenancereminder = off 
42
heater maintenancedate = 2004-01-01 
43
servicecode = 0H 
44
errorcode = 203


wenn ich die website aufrufe siehe bild...
Vielleicht habt ihr ne idee

Apache meldet:
1
[Thu Jun 19 20:20:17.060760 2014] [:error] [pid 5085] [client 192.168.178.42:38694] PHP Notice:  Undefined variable: menus in /var/www/top.php on line 9
2
[Thu Jun 19 20:20:17.060793 2014] [:error] [pid 5085] [client 192.168.178.42:38694] PHP Warning:  Invalid argument supplied for foreach() in /var/www/top.php on line 9
3
[Thu Jun 19 20:20:39.472985 2014] [:error] [pid 5084] [client 192.168.178.42:38695] PHP Warning:  Invalid argument supplied for foreach() in /var/www/top.php on line 9
4
[Thu Jun 19 20:20:40.273690 2014] [:error] [pid 5084] [client 192.168.178.42:38695] PHP Warning:  Invalid argument supplied for foreach() in /var/www/top.php on line 9

: Bearbeitet durch User
von Lars R. (lars_r48)


Lesenswert?

brrrrrrrrrrrrrrrrrrr mann mann mann

also
in der datei

mconfig.php
<?

ändern in

<?php

von Andre G. (whopperg)


Lesenswert?

@ Danny & Moosy:

Gibt es eine Möglichkeit im Debuglog nur "Unhandled Messages" ausgeben 
zu lassen? Das würde das Reversen der fehlenden Telegramme doch sehr 
vereinfachen.

Übrigens habe ich mir auch den Collector mit der RAW-Funktion 
kompeliert. Allerdings habe ich keinen Plan wie ich die Befehle 
ausführen soll ;-)

Gestartet habe ich den Collector mit:

collectord  -C 7777 -D 7778 -u ems -p emscollector -r 60 
tcp:192.168.100.200:7950 -d all -f

Muss ich mich jetzt per Telnet zum Collector verdinden? Oder kann ich 
auch die EMS-Tools verwenden?

Grüße

von Lars R. (lars_r48)


Lesenswert?

Danny Baumann schrieb:
> larsrosen schrieb:
>> Was meinst du mit out of the box?
>
> Naja, Basisfeatures (z.B. Sensorwerte des UBA) werden wahrscheinlich
> einfach funktionieren, aber bei allem, was die RC300 selbst betrifft
> (z.B. Schaltprogramme oder neue Features, die das Teil u.U.
> bereitstellt) kann es sein, dass noch zusätzlicher Code in den Collector
> rein muss, damit die RC300 auf den gleichen Stand wie RC30/35 kommt. Bei
> den neuen Modulen gilt das gleiche.
>
>> Ich bin gerne bereit zu helfen die befehle raus zi bekommen?
>
> Na dann mal los ;) Den grundlegenden Ablauf hat moosy hier schon gut
> beschrieben: Beitrag "Re: EMS > Adapter > NetIO > Raspi" - ein
> paar Details haben sich inzwischen aber geändert:
> - Der ems-collector muss mit Raw-Kommando-Support gebaut werden (Zeile 3
> des Makefiles auskommentieren, d.h. Raute entfernen)
> - Das emsqry-Kommando heißt inzwischen 'raw read <device> <type>
> <offset> <len>' (in moosy's Beispiel 2a ist 0 der Offset und 25 die
> Länge)
> - Das emscmd-Kommando heißt inzwischen 'raw write <device> <type>
> <offset> <data0> ... <dataX>'
>
> Für moosy's Punkt 5 melde ich mich freiwillig, wenn Punkt 4 erledigt ist
> ;) (d.h. das Telegrammformat aufgedröselt ist).

Hi dany,

ich bin nun endlich soweit das ich die komandos raussuchen kann, jedoch 
komme ich mit der anleitung nicht ganz klar, raw read liefert mir 
keinerlei aussage.
1. Wie ist der typ für meine RC300 ( ich denke mal die gibt es noch 
nicht)
   wenn ich 08 für uba nehme zum testen bring ich immer noch keine 
anzeige hin, da ich weder weiss welchen typ noch länge ich angeben muss.

Vielleicht kannst du mir ja ein tip oder ei beispiel anhand der alten 
analyse geben.

von Lars R. (lars_r48)


Lesenswert?

Hat keiner mehr noch ein kleinen Tip wie das mit der Bus analyse 
funktioniert?

Es wäre schade wenn die ganze Arbeit jetzt umsonst gewesen wäre und die 
RC300 es nie in den collector schaffen würde.

Nochmal folgende schritte habe ich gemacht:
- Collector mit Raw support erstellt
- mit Telnet auf den Collector eingewählt
- dort bekomme ich verschiedenste Telegramm angezeigt die er noch nicht 
kennt
- Wenn ich mit raw read arbeiten tue und gebe z.b moosy's beispiel ein 
08 19 0 25 bekomme ich weder ein fehler noch eine anzeige.

Also vielleicht rafft sich ja doch noch mal einer der Dev's auf und gibt 
ein wenig hilfestellung gerne auch per Telefon oder E-Mail. Das Projekt 
hat viel Intresse geweckt und es wäre schade wenn es nur die alten RC's 
supporten würde.

von Andre G. (whopperg)


Lesenswert?

Lars Rosenberg schrieb:
> Hat keiner mehr noch ein kleinen Tip wie das mit der Bus analyse
> funktioniert?
>
[...]

Also ich schliesse mich Lars an - würde auch gerne - wie weiter oben 
schon geschrieben - aus- bzw mithelfen.

Aber vielleicht sind die beiden ja im Urlaub? ;-)

Gruß

von Jürgen S. (Firma: privat) (jschmied)


Lesenswert?

Hallo!

Ich schreib heute abend mal ein paar Zeilen zum Thema in das Wiki

http://ems-gateway.myds.me/dokuwiki/doku.php?id=wiki:ems:re

ein paar Tipps sind auch hier

Beitrag "Re: EMS > Adapter > NetIO > Raspi"

habt Ihr konkrete Fragen oder fehlt einfach der Einstieg?

Viele Grüße

Jürgen

von Andre G. (whopperg)


Lesenswert?

Hi Jürgen,

Danke für die Infos. Durchgelesen haben wir (ich denke Lars auch ;-) ) 
das Wiki schon.

Nur weiss ich persönlich nicht wie ich den RAW Modus benutzen soll bzw 
kann (siehe die letzten 3-6 Beiträge von Lars und mir).

Hier wären ein paar Syntax Beispiele mit den entsprechenden Befehlen 
sehr hilfreich.

Die RE Anleitung aus dem Wiki ist doch irgendwie unübersichtlich ;-)

Danke schon mal!

: Bearbeitet durch User
von Danny B. (maniac103)


Lesenswert?

Lars Rosenberg schrieb:
> Es wäre schade wenn die ganze Arbeit jetzt umsonst gewesen wäre und die
> RC300 es nie in den collector schaffen würde.

Nicht so schnell aufgeben :)

> Nochmal folgende schritte habe ich gemacht:
> - Collector mit Raw support erstellt
> - mit Telnet auf den Collector eingewählt
> - dort bekomme ich verschiedenste Telegramm angezeigt die er noch nicht
> kennt
> - Wenn ich mit raw read arbeiten tue und gebe z.b moosy's beispiel ein
> 08 19 0 25 bekomme ich weder ein fehler noch eine anzeige.

Fast richtig. Mache aus dem 19 mal ein 0x19 und du wirst eine Anzeige 
bekommen ;)
1
raw read 8 19 0 25
2
3
OK
4
raw read 8 0x19 0 25
5
0x00 0xb2 0x01 0x44 0x80 0x00 0x00 0x00 0x00 0x00 0x01 0xa6 0x15 0x07 0x48 0xfe 0x00 0x00 0x00 0x06 0x68 0x53 0x01 0x94 0xb4 
6
OK
7
raw read 8 25 0 25
8
0x00 0xb2 0x01 0x44 0x80 0x00 0x00 0x00 0x00 0x00 0x01 0xa6 0x15 0x07 0x48 0xfe 0x00 0x00 0x00 0x06 0x68 0x53 0x01 0x94 0xb4 
9
OK

19(hex) = 25(dez)
Die Geräteadressen und Telegrammtypen werden üblicherweise hexadezimal 
angegeben, wenn man das 0x davorstellt, sollte man also auf der sicheren 
Seite sein.

> Also vielleicht rafft sich ja doch noch mal einer der Dev's auf und gibt
> ein wenig hilfestellung gerne auch per Telefon oder E-Mail. Das Projekt
> hat viel Intresse geweckt und es wäre schade wenn es nur die alten RC's
> supporten würde.

Für Telefonsupport fehlt mir persönlich die Zeit. E-Mail-Support finde 
ich auch nicht so hilfreich, weil die gewonnenen Erkenntnisse dann auch 
nicht jedermann zur Verfügung stehen. Es ist IMHO besser, die 
(idealerweise konkreten) Fragen hier zu stellen.

von Lars R. (lars_r48)


Lesenswert?

Ok jetzt bekomme ich schonmal etwas:
1
raw read 8 0x19 0 25
2
0x01 0x23 0x00 0xf1 0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x5b 0x1e 0x11 0x11 0xe4 0x00 0x00 0x00 0x10 0x23 0x91 0x00 0x52 0x17 
3
OK

Vielleicht kannst du mir jetzt noch bein aufdröseln kurz helfen.

Laut protokoll sollt das 1.Byte (0x01) der Sender sein?
das wäre in der Tabelle ein RC35 oder?

da ich ja die außentemperatur abgefragt habe sollte die ja irgendwo in 
dieser zeile zu finden sein? es waren grade 29°C

Vielleicht kannst du mal anhand eines Beispiels zeigen wie es geht.

Und gibt es eine möglichkeit telegramme abzuhören die auf dem Bus sind, 
da ich irgendwie das gefühl habe die ems-plus telegramme sind anders 
aufgebaut?

Das wäre auch im WIKI hilfreich. einfach mal ein beispiel wie es sich 
aufbaut.

: Bearbeitet durch User
von Danny B. (maniac103)


Lesenswert?

Lars Rosenberg schrieb:
> Laut protokoll sollt das 1.Byte (0x01) der Sender sein?
> das wäre in der Tabelle ein RC35 oder?

Doppelt nein. Das 1. Byte in der Ausgabe ist das 1. Byte des 
eigentlichen Telegramms, d.h. das Byte, das nach dem Offset kommt. 
Sender, Empfänger, Typ und Offset werden nicht nochmal mit ausgegeben, 
da ohnehin klar (Empfänger ist 0xb = PC, Sender, Typ und Offset stehen 
im Befehl).
Das zweite nein bezieht sich auf die Annahme, dass 0x01 die RC35 meint: 
Die RCxx-Adresse ist 0x10.

> da ich ja die außentemperatur abgefragt habe sollte die ja irgendwo in
> dieser zeile zu finden sein? es waren grade 29°C

Ja. Außentemperatur sind die ersten beiden Bytes des 
MonitorSlow-Telegramms, d.h. 0x01 0x23 -> 0x123 = 291 -> 29.1°C. Der 
Divisor (hier 10) steht auch im Wiki ;)

> Und gibt es eine möglichkeit telegramme abzuhören die auf dem Bus sind,
> da ich irgendwie das gefühl habe die ems-plus telegramme sind anders
> aufgebaut?

Nicht mit der Kommandoschnittstelle. Du kannst Message-Debug per 
Kommandozeilenparameter im collector anmachen, dann steht's im Log (-d 
message -> Ausgabe auf stdout, -d message=/tmp/log.txt -> Ausgabe in 
Datei)

: Bearbeitet durch User
von Lars R. (lars_r48)


Lesenswert?

ahhh ok.
D.h Start 5 = das erste byte was ich angezeigt bekomme?

von Lars R. (lars_r48)


Lesenswert?

Anleitung für das Auslesen neuer Telegramme:
1
0. Um den RAW-support nutzen zu können, sollte der collector nach Anleitung ganz normal installiert werden, bis der Telnet zugriff erfolgen kann.
2
3
1. Erstellen eines Collectors mit RAW-support
4
        collector auschecken und im Makefile die # in der 3 Zeile entfernen
5
           -->   #CFLAGS += -DHAVE_RAW_READWRITE_COMMAND
6
        dannach ganz normal erstellen mit make
7
8
2. starten des Collectors
9
        ./collectord  -C 7777 -D 7778 -u user -p passwort -r 60 tcp:192.168.1.205:7950
10
11
3. Mittels Telnet auf den collector einloggen:
12
         telnet 127.0.0.1 7777   (wenn der PC wo collector läuft der selbe ist wie von dem der telnet Befehl aufgerufen wird, ansonsten die IP des collector client)
13
14
4. test eines telegrammes:
15
  Syntax:        raw read <device> <type> <offset> <len>
16
   Beispiel:     raw read 8 0x19 0 27      
17
                 8= UBA
18
              0x19= UBAMonitorSlow
19
                 0= Start 5
20
                27= gibt 27 bytes aus
21
22
Das Beispiel liefert bei mir folgens:
23
24
0x01 0x2c 0x00 0xef 0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x5b 0x1e 0x11 0x11 0xe4 0x00 0x00 0x00 0x10 0x23 0x91 0x00 0x52 0x17 0x00 0x00
25
26
0x01 ist byte 5 weil die ertsen 4 bytes im Befehl stecken.
27
28
wenn ich jetzt in der Tablle: 
29
http://ems-gateway.myds.me/dokuwiki/doku.php?id=wiki:ems:telegramme
30
schaue unter 0x19 UBAMonitorSlow
31
steht
32
Start 5 Bytes 2 divisor 10  Außentemperatur
33
34
also muss ich byte 5 + 6 zusammen setzen   = 12c = 300 in dezimal : divisor ( 10 ) = 30,0 °C
35
36
als nächstest steh: z.b
37
Start 15  Bytes 3  Brennerstarts
38
0x00 0x5b 0x1e = 005b1e = 23326 Dezimal Also 23326 Brennerstarts

: Bearbeitet durch User
von Lars R. (lars_r48)


Lesenswert?

Danny schau mal:
1
MESSAGE[04.07.2014 17:12:08]: source 0x08, dest 0x00, type 0x18, offset 0, data: 0x55 0x03 0x21 0x64 0x64 0x0a 0x10 0x65 0x62 0x80 0x00 0x01 0x6c 0x02 0x88 0x01 0x5b 0x0d 0x3d 0x48 0x00 0xc9 0x00 0x03 0x00
2
MESSAGE[04.07.2014 17:12:11]: source 0x10, dest 0x00, type 0xff, offset 11, data: 0x01 0xf5 0xff
3
MESSAGE[04.07.2014 17:12:12]: source 0x10, dest 0x00, type 0xff, offset 0, data: 0x02 0x1d 0x01
4
MESSAGE[04.07.2014 17:12:14]: source 0x10, dest 0x00, type 0xff, offset 2, data: 0x02 0x1d 0x02 0x02
5
MESSAGE[04.07.2014 17:12:17]: source 0x08, dest 0x00, type 0x19, offset 0, data: 0x01 0x18 0x03 0x0d 0x80 0x00 0x00 0x00 0x00 0x64 0x00 0x5b 0x1f 0x11 0x11 0xeb 0x00 0x00 0x00 0x10 0x23 0x91 0x00 0x52 0x17 0x00 0x00
6
MESSAGE[04.07.2014 17:12:18]: source 0x08, dest 0x00, type 0x1c, offset 0, data: 0x8c 0x0a 0x17 0x10 0x16 0x00 0x00 0x00 0x00 0x00 0x00
7
MESSAGE[04.07.2014 17:12:18]: source 0x08, dest 0x00, type 0x34, offset 0, data: 0x3c 0x01 0x6e 0x01 0x6e 0x09 0x00 0x01 0x03 0x00 0x00 0xee 0x5a 0x00 0x09 0x08 0x00
8
MESSAGE[04.07.2014 17:12:18]: source 0x08, dest 0x00, type 0x07, offset 0, data: 0x0b 0x01 0x00 0x00 0x00 0x00 0x01 0x00 0x01 0x00 0x00 0x00 0x00
9
MESSAGE[04.07.2014 17:12:18]: source 0x08, dest 0x00, type 0x18, offset 0, data: 0x55 0x03 0x24 0x64 0x64 0x0a 0x10 0x65 0x62 0x80 0x00 0x01 0x6f 0x02 0x8a 0x01 0x5b 0x0d 0x3d 0x48 0x00 0xc9 0x00 0x03 0x00
10
11
[color=RED ]
12
MESSAGE[04.07.2014 17:12:21]: source 0x10, dest 0x00, type 0xff, offset 15, data: 0x01 0xa5 0x04 0x04
13
MESSAGE[04.07.2014 17:12:26]: source 0x10, dest 0x00, type 0xff, offset 12, data: 0x01 0xf5 0x00
14
MESSAGE[04.07.2014 17:12:27]: source 0x10, dest 0x00, type 0xff, offset 13, data: 0x01 0xf5 0x00 0x00 0x00 0x00 0x00
15
MESSAGE[04.07.2014 17:12:27]: source 0x10, dest 0x00, type 0xff, offset 18, data: 0x01 0xf5 0x00 0x00
16
MESSAGE[04.07.2014 17:12:27]: source 0x10, dest 0x00, type 0xff, offset 11, data: 0x01 0xf5 0x00
17
[/color]

Die letzten 5 telegramme kahmen als ich die einmalladung des Speichers 
getopt habe von der RC300. Was mich da stört ist type 0xff sind das 
echte typen oder welche die nicht in der collector eingepflegt sind?
wenn nich nämlich versuche diese mit raw read 0x10 0xff 0 40 zu lesen 
kommt nur OK sonst nix

und wenn ich die schaltpunke abfragen will bekomme ich auch nur OK
raw read 0x10 0x3d 0 25

Roh daten:
1
IO: Got bytes 0xaa 0x55 0xb 0x38 0x10 0xff 00 0x3 0x2b 00 0xea 0x9 0x2a 0x1 0x37 
2
MESSAGE[04.07.2014 17:31:38]: source 0x38, dest 0x10, type 0xff, offset 0, data: 0x03 0x2b 0x00 0xea 0x09 0x2a 0x01
3
DATA: Unhandled message received(source 0x38, type 0xff).

: Bearbeitet durch User
von Lars R. (lars_r48)


Lesenswert?

das habe ich herausgefunden, wenn ich die daten übers KM200 änder
1
source 0x48, dest 0x10, type 0xff, offset 11, data: 0x01 0xb9 0x02   Zeitprogramm 2 hk1 
2
source 0x48, dest 0x10, type 0xff, offset 11, data: 0x01 0xb9 0x01   Zeitprogramm 1 hk1
3
4
source 0x48, dest 0x10, type 0xff, offset 4, data: 0x01 0xb9 0x1d  temp 14,5°Csource 0x48, dest 0x10, type 0xff, offset 11, data: 0x01 0xb9 0x02   Zeitprogramm 2 hk1 
5
source 0x48, dest 0x10, type 0xff, offset 11, data: 0x01 0xb9 0x01   Zeitprogramm 1 hk1
6
7
source 0x48, dest 0x10, type 0xff, offset 4, data: 0x01 0xb9 0x1d  temp 14,5  das wäre offset 7 divisor 2

kann ich das jetzt irgenwie mit raw write reisnchreiben in den bus das 
es über konsole zu ändern geht?

: Bearbeitet durch User
von Lars R. (lars_r48)


Lesenswert?

Das ist mal die meldung des wechsels des Zeitprogramm auf 1 im HK1
1
IO: Got bytes 0xaa 0x55 0x7 0x48 0x10 0xff 0xb 0x1 0xb9 0x1 0x15 
2
MESSAGE[05.07.2014 06:43:51]: source 0x48, dest 0x10, type 0xff, offset 11, data: 0x01 0xb9 0x01

0x48 ist also der Km200

nur wenn ich jetzt sage:
raw write 0x10 0xff 11 0x01 0xb9 0x02
 komtt zwar ok aber im log steht source 0x100 dest 0x00 typ 0xff data 
(leer)
und es passiert nix

von Lorenz G. (lorgru)


Angehängte Dateien:

Lesenswert?

Hallo liebe Leute,

ich möchte mich auch ein wenig intensiver mit meiner Buderus Heizung GBH 
172 14T 75S mit RC300 und Solarunterstützung beschäftigen. Nachdem ich 
hier schon eine Weile mitlese, habe ich entschieden, dieses interessante 
Projekt auch technisch umzusetzen und ggf. zu unterstützen (je nach 
meinen Möglichkeiten). Ganz am Ende ist das Ziel die Integration in die 
Heimautomation mittels fhem.
Aber eins nach dem anderen.
Die Adapterplatine ist auf einer Lochrasterplatine fertiggestellt. Dabei 
fiel mir eine fehlende Verbindung auf (siehe Bild).
AVR-NetIO läuft mit ATMEGA644p und ethersex im LAN. Das hex-File habe 
ich erstellt und geflasht. Raspi ist vorhanden und läuft im LAN, da bin 
ich aber noch nicht angekommen. Noch bin ich beim NetIO. Bei mir klemmt 
es momentan an der EMS Konfiguration von ethersex. Und da bräuchte ich 
einen Tipp: Bei "Status LED" kann ich "Status LED (Transmitted)" noch 
auswählen, die Unterpunkte wie "EMS TX" sind aber "not available". 
Gleiches Bild für die anderen beiden LEDs. Ethersex ist aktuell, hab ich 
gecheckt.
Wenn dadurch die LEDs ohne Funktion blieben, sehe ich die weiteren 
Schritte gefährdet.
Was kann das sein ?

LG

von Andre G. (whopperg)


Lesenswert?

Hi,

Du musst im ethersex configmenu zuerst eine andere Option aktivieren 
damit du die ems LED status Sachen auswählen kannst.

Welche das was weiss ich leider auch nicht mehr :-) (hatte das selbe 
Problem). Stelle erst mal alles nach der Anleitung aus dem wiki ein. 
Dann geh zum Schluss noch mal in die Status LED Option. Dann solltest du 
es aktivieren können.

Aber selbst ohne LEDs funktionert das ganze. Blinkt halt nur nichts :-)
Gruss

: Bearbeitet durch User
von Lorenz G. (lorgru)


Lesenswert?

Danke für den Tipp, hat funktioniert.
Man kann nicht die Konfiguration in der Reihenfolge des Wiki bearbeiten, 
sondern man muss nach der Einstellung "EMS-Support" unter "Protocols" 
noch mal zurück zu den LEDs.

LG

von Andre G. (whopperg)


Lesenswert?

Hi,
Habe jetzt auch mal mein Logfile auseinander gepflügt. Man ist da viel 
los auf dem Bus! Ist das bei euch auch so?

Frage dazu: Wie Filtert ihr eure Logfiles? Gibts noch eine Möglichkeit 
sich nur die Unhandled Messages Anzeigen zu lassen? Also mit den 
Wichtigen Zeilen davor und dahinter?

Fürs RE ist das sonst echt unübersichtlich :-)

Bis jetzt habe ich vier noch nicht im Wiki gelistete Sourcen gefunden:

Source 8
 DATA: Unhandled message received(source 0x08, type 0x02).
 DATA: Unhandled message received(source 0x08, type 0x04).
 DATA: Unhandled message received(source 0x08, type 0x07).
 DATA: Unhandled message received(source 0x08, type 0x25).
 DATA: Unhandled message received(source 0x08, type 0x2a).
 DATA: Unhandled message received(source 0x08, type 0xd1).
 DATA: Unhandled message received(source 0x08, type 0xe6).
 DATA: Unhandled message received(source 0x08, type 0xe9).
 DATA: Unhandled message received(source 0x08, type 0xea).
 DATA: Unhandled message received(source 0x08, type 0xef).

Source 9
 DATA: Unhandled message received(source 0x09, type 0x02).
 DATA: Unhandled message received(source 0x09, type 0x29).

Source: 21
 DATA: Unhandled message received(source 0x21, type 0x02).
 DATA: Unhandled message received(source 0x21, type 0x1a).
 DATA: Unhandled message received(source 0x21, type 0xf6).
 DATA: Unhandled message received(source 0x21, type 0xf7).
 DATA: Unhandled message received(source 0x21, type 0xff).

Source: 30
 DATA: Unhandled message received(source 0x30, type 0x02).
 DATA: Unhandled message received(source 0x30, type 0x35).
 DATA: Unhandled message received(source 0x30, type 0xf6).
 DATA: Unhandled message received(source 0x30, type 0xf7).
 DATA: Unhandled message received(source 0x30, type 0xff).


Das sind vermutlich u.a. die Solar Komponenten und die Heizkreise 1 und 
2? Gibt es eine Möglichkeit herauszufinden was das ist?

Grüße

von Lars R. (lars_r48)


Lesenswert?

wenn du collecotrd mit -d message startest bekommst du nur die roh 
daten.

Ich habe es so gemacht, das ich von den unbekannten geräte dienste 
gestartet habe z.b WW einmalladung dann siehst du von wo des telegramm 
kommt.

Aber ich glaube immernoch das ich mit meiner RC300 kein glück haben 
werde. Wenn ich nämlich bei dir sehe sind es fast alles typen die nicht 
0xff sind bei mir kommen nur die 0xff typen....

Vielleicht meldet sich danny nochmal zu wort.

von Andre G. (whopperg)


Lesenswert?

Hi Lars,

ich habe den collectord wie folgt gestartet:
./collectord -C 7777 -D 7778 -u meinuser -p meinpassword -r 60 
tcp:192.168.100.200:7950 -d all=/var/log/ems-collector.log

Dann habe ich mir "tail -f" das logfile anzeigen lassen und am RC300 
dann z.b. die Solar infos ausgewählt.

aber jetzt wo du es sagst, hatte ich gar keine telnet session zum 
collector auf ;-)

Habe auch eine KM200 - diese ist aber z.Zt. nicht angeschlossen (glaube 
aber nicht das es damit zusammenhängt).
Welche Softwareversion hat denn deine RC300? (Meine: 11.04)

von Lars R. (lars_r48)


Lesenswert?

Wenn du anstelle von
-d all
Das machste
-d message
Oder
-d message, io

Bekommst du die klartextmeldungen nicht angzeigt.

Ich denke es hat nicht direkt mit dem km200 zu tun sondern eher daran, 
das bei mir die rc300, rc100 und km200 sich auf dem ems-plus 
unterhalten. Die sachen die unter ems gehen (uhrzeit, Datum und 
brennerzyklen) kann man auslesen. Aber z.b die schaltzeiten ändern die 
gehen nicht über das ems sondern jetzt über das ems plus protkoll. Alles 
was ich im Moment getestet habe sendet mit dem typ 0xff. Normalerweise 
sieht man aber davon ab etwas als byte ff zu deklarieren,  da es ja eine 
11111111 wäre und so auch ein fehler aussehen würde.
Entweder ist der ems plus typ nicht nur ein byte gross oder er muss 
irgendwie noch versorgt werden im quellcode.
Ich habe mir bereits mal angeshen wo der typ herkommt aber finde im code 
bislang nicht die stelle wo der m-type geparst wird. Deshalb hoffe ich 
das danny sich meldet.

Aber was ich rausgefunden habe
0x38  rc100
0x48 km200

von Andre G. (whopperg)


Lesenswert?

Ok danke für den Tipp! Probiere ich später mal aus...
Na dann warte ich auch erstmal ab, bevor wir alles doppelt machen.

von Danny B. (maniac103)


Lesenswert?

Andre Geheim schrieb:
> Bis jetzt habe ich vier noch nicht im Wiki gelistete Sourcen gefunden:
> Source 8
Das ist der UBA (sollte im Wiki stehen)
> Source 9
Das ist BC10 (Controller am Brenner; sollte auch im Wiki stehen)
> Source: 21
Das ist der Mischer für HK2 (also MMxx; sollte auch im Wiki stehen)
> Source: 30
Das kenne ich nicht, ist wahrscheinlich das Solarmodul.

Lars Rosenberg schrieb:
> Aber ich glaube immernoch das ich mit meiner RC300 kein glück haben
> werde. Wenn ich nämlich bei dir sehe sind es fast alles typen die nicht
> 0xff sind bei mir kommen nur die 0xff typen....

Naja, was heißt 'kein Glück' - dafür musst du schon selbst sorgen :) Das 
ganze ist wahrscheinlich ein neues Protokoll, das Buderus auf den EMS 
gesetzt hat; und dafür haben sie den Typ 0xff genommen, um 
rückwärtskompatibel zu bleiben (Niffko, klingt das plausibel?). Das 
ganze aufdröseln kann aber IMHO nur jemand, der auch das Gerät hat, 
damit derjenige (z.B. du ;) ) immer mit dem RC vergleichen kann.

Lars Rosenberg schrieb:
> was ich im Moment getestet habe sendet mit dem typ 0xff. Normalerweise
> sieht man aber davon ab etwas als byte ff zu deklarieren,  da es ja eine
> 11111111 wäre und so auch ein fehler aussehen würde.

??? Wie meinst du das?

> Entweder ist der ems plus typ nicht nur ein byte gross oder er muss
> irgendwie noch versorgt werden im quellcode.

Mit Sicherheit. Zunächst einmal muss aber herausgefunden werden, in 
welcher Form das passieren muss.

> Ich habe mir bereits mal angeshen wo der typ herkommt aber finde im code
> bislang nicht die stelle wo der m-type geparst wird. Deshalb hoffe ich
> das danny sich meldet.

Was ist der 'm-type'?

> Aber was ich rausgefunden habe
> 0x38  rc100
> 0x48 km200

Ist doch schon mal etwas :)

von Lars R. (lars_r48)


Lesenswert?

Mit dem 0xff kenne ic das nur so, das man so fehler deklriert, da eine 1 
auf allen 8 Bits auch zustande kommt wenn z.B.: ein timing Fehler 
vorliegt.

Mit dem m_type vergess das einfach, der steht im quellcode bei der 
Message ausgabe, ich dachte evlt ist das nur zu klein gewählt, kann aber 
nicht sein sonst müssten die fehlenden bytes woander drin auftauchen.



Und das aufdröseln ist mir ja klar das das jemand machen muss.bin ja 
dran.
Nur ich kann kein write ausführen mit dem typ 0xff.

Ich schreibe folgenden Befehl:
raw write 0x10 0xff 4 0x01

in log kommt aber nur:

IO: Sending bytes 0x10 0xff 0x4 0x1
IO: Got bytes 0xaa 0x55 0x4 0x10 0xb 0xff 0x1 0xe5
MESSAGE[06.07.2014 14:23:57]: source 0x10, dest 0x0b, type 0xff, offset 
1, data:

ich versuche dieses Telegramm ein zu setzten
source 0x48, dest 0x10, type 0xff, offset 11, data: 0x01 0xb9 0x01 
Zeitprogramm 1 hk1


oder dies:
raw write 0x10 0xff 11 0x01 0xb9 0x01

IO: Sending bytes 0x10 0xff 0xb 0x1
IO: Got bytes 0xaa 0x55 0x4 0x10 0xb 0xff 0x1 0xe5
MESSAGE[06.07.2014 14:26:50]: source 0x10, dest 0x0b, type 0xff, offset 
1, data:

raw read bekomme ich auch nichts ausgegeben auf 0xff.

Deshalb dachte ich es muss erstmal der typ 0xff versorgt werden im 
collector damit irgendwie das senden funktioniert?

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.