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


von Danny B. (maniac103)


Lesenswert?

Peter W. schrieb:
> Hallo Danny,
> habe in der /etc/ems-collector.conf den Parameter "rc-type = rc30"
> ergänzt und in der /etc/default/ems-collector die Zeile OPTIONS="...."
> auskommentiert.
>
> Leider immer noch der gleiche Fehler beim Versuch, den collectord als
> Service zu starten...

Schau doch mal, ob du den kompletten Fehler siehst, wenn du journalctl 
-f in einem zweiten Terminal laufen lässt.

> arbeitet. Allerdings wird die Heizkurve immer noch nicht gezeichnet :-(
> - ebenso wie die Graphen auf der Statistikseite. Wie lässt ma die denn
> per Cron Job zeichnen?

So oder so ähnlich: https://gist.github.com/maniac103/8486528 (zu 
/etc/crontab hinzufügen oder als Datei in /etc/cron.d anlegen) ... 
ems-gen-graphs.py kommt aus ems-tools/scripts, /var/tmp/heizung 
entspricht dem Graph-Verzeichnis aus der Config.

> ...aber welchem Wert enspricht dies auf Moosys Webinterface - dem
> "Nachts reduzierter Betrieb unter"?

Genau dem.

> Falls ja, dann wird der Wert nicht
> übernommen, denn in der Weseite (nach einem Refresh) steht dort wieder 0
> Grad.

Dann gehe ich mal davon aus, dass die RC30 das einfach nicht kann. Dein 
Log deutet auch stark darauf hin: Dieser Wert steht in Telegramm 0x3d, 
Offset 39, während deine RC30 nur 32 Bytes kennt. Das dürfte dann auch 
auf 'Nachtabsenkung abbrechen unter' (Offset 38) und 'Nachts reduzierter 
Betrieb unter' (Offset 40) zutreffen.

> Die Heizkreistemperatur auf der Livestatus Seite wird auch trotz des
> RC30 Parameters nicht angezeigt - möglicherweise hängt das ja mit den 2
> Heizkreisen zusammen...

Nein, da muss es noch eine andere Ursache geben. Moosy fragt einfach 
immer nur HK1 ab, HK2 wird ignoriert. Bei mir wird die Temperatur 
angezeigt, und ich habe auch 2 Heizkreise.
Erzeugt wird der ausgegebene Wert ja aus diesem Stück Code in 
a_emslive.php:
1
$temptemp = getHKInfo("temptemp");
2
if ($temptemp==0){
3
  if (getHKInfo("tagbetr")=="on"){
4
    $temptemp =  getHKInfo("day");
5
  } else {
6
    $temptemp =  getHKInfo("night");
7
  }
8
}
"temptemp" ist "hk1 temperatureoverride", "tagbetr" ist "hk1 daymode", 
"day" ist "hk1 daytemperature" und "night" ist "hk1 nighttemperature".

Was dabei auffällt, ist dass 'hk1 temperatureoverride' bei dir nicht 
vorhanden ist; d.h. dessen Wert ist nicht 0, sondern 'nicht gesetzt'. 
Probier doch mal, die 2. Zeile an dieser Stelle so zu schreiben:
1
if (!isset($temptemp) || $temptemp == 0) {

Das sollte wahrscheinlich helfen. Das sind halt die subtilen 
Unterschiede zwischen RC30 und RC35 :-/

von Peter W. (piet61)


Angehängte Dateien:

Lesenswert?

Hallo Danny,

das Erstellen der Grafiken - auch der Heizkurve - funktioniert nun 
einwandfrei. Ich lasse die auch per Cron Job alle 5 Minuten neu 
zeichnen. Das Problem war der falsche Pfad zu der MYSQL Socket Datei in 
der config.py Datei (da stand mysql.sock statt mysqld.sock)

Im Livestatus wird die Temperatur leider nicht angezeigt. Ich habe 
nochmal einen Screenshot davon angehängt.
In der a_emslive.php Datei habe ich das Statement wie von Dir 
vorgeschlagen abgeändert - also
1
$temptemp = getHKInfo("temptemp");
2
if (!isset($temptemp) || $temptemp == 0) {
3
  if (getHKInfo("tagbetr")=="on"){
4
    $temptemp =  getHKInfo("day");
5
  } else {
6
    $temptemp =  getHKInfo("night");
7
  }
8
}

- aber leider ohne Erfolg.

Zur Sicherheit habe ich noch aus diesem Block alles mal rausgenommen und 
nur
1
$temptemp =  getHKInfo("day");
dringelassen - die Anzeige auf der Webseite bleibt leider die gleiche - 
also "NaN" - wo immer das auch herkommt :-(

Bezüglich des Service Problems habe ich in einem Terminal "sudo 
journalctl -f" eingegeben und dann in einem 2. Fenster "sudo service 
ems-collector start".

Der Output von "journalctl -f" sieht so aus:
1
Jan 13 17:28:46 raspi2 sudo[28367]: peter : TTY=pts/2 ; PWD=/var/www/ems ; USER=root ; COMMAND=/usr/sbin/service ems-collector start
2
Jan 13 17:28:46 raspi2 sudo[28367]: pam_unix(sudo:session): session opened for user root by peter(uid=0)
3
Jan 13 17:28:47 raspi2 systemd[1]: Starting LSB: EMS collector daemon...
4
Jan 13 17:28:47 raspi2 ems-collector[28391]: Starting EMS collector daemon: collectordUsage: /usr/local/sbin/collectord [options] <target>
5
Jan 13 17:28:47 raspi2 ems-collector[28391]: General options:
6
Jan 13 17:28:47 raspi2 ems-collector[28391]: -h [ --help ]                Show this help message
7
Jan 13 17:28:47 raspi2 ems-collector[28391]: -R [ --rc-type ] arg         Type of used room controller (rc30 or rc35)
8
Jan 13 17:28:47 raspi2 ems-collector[28391]: -r [ --ratelimit ] arg (=60) Rate limit (in s) for writing numeric sensor
9
Jan 13 17:28:47 raspi2 ems-collector[28391]: values into DB
10
Jan 13 17:28:47 raspi2 ems-collector[28391]: -d [ --debug ] arg (=none)   Comma separated list of debug flags (all, io,
11
Jan 13 17:28:47 raspi2 ems-collector[28391]: message, data, stats, none)  and their files,
12
Jan 13 17:28:47 raspi2 systemd[1]: ems-collector.service: control process exited, code=exited status=1
13
Jan 13 17:28:47 raspi2 systemd[1]: Failed to start LSB: EMS collector daemon.
14
Jan 13 17:28:47 raspi2 systemd[1]: Unit ems-collector.service entered failed state.
15
Jan 13 17:28:47 raspi2 sudo[28367]: pam_unix(sudo:session): session closed for user root
16
Jan 13 17:28:47 raspi2 ems-collector[28391]: e.g. message=/tmp/messages.txt
17
Jan 13 17:28:47 raspi2 ems-collector[28391]: Daemon options:
18
Jan 13 17:28:47 raspi2 ems-collector[28391]: -P [ --pid-file ] arg (=/var/run//usr/local/sbin/collectord.pid)
19
Jan 13 17:28:47 raspi2 ems-collector[28391]: Pid file path
20
Jan 13 17:28:47 raspi2 ems-collector[28391]: -f [ --foreground ]                   Run in foreground
21
Jan 13 17:28:47 raspi2 ems-collector[28391]: -c [ --config-file ] arg              File name to read configuration from
22
Jan 13 17:28:47 raspi2 ems-collector[28391]: Database options:
23
Jan 13 17:28:47 raspi2 ems-collector[28391]: --db-path arg         Path or server:port specification of database server
24
Jan 13 17:28:47 raspi2 ems-collector[28391]: (none to not connect to DB)
25
Jan 13 17:28:47 raspi2 ems-collector[28391]: -u [ --db-user ] arg  Database user name
26
Jan 13 17:28:47 raspi2 ems-collector[28391]: -p [ --db-pass ] arg  Database password
27
Jan 13 17:28:47 raspi2 ems-collector[28391]: TCP options:
28
Jan 13 17:28:47 raspi2 ems-collector[28391]: -C [ --command-port ] arg TCP port for remote command interface (0 to
29
Jan 13 17:28:47 raspi2 ems-collector[28391]: disable)
30
Jan 13 17:28:47 raspi2 ems-collector[28391]: -D [ --data-port ] arg    TCP port for broadcasting live sensor data (0 to
31
Jan 13 17:28:47 raspi2 ems-collector[28391]: disable)
32
Jan 13 17:28:47 raspi2 ems-collector[28391]: failed!

Für mich sieht das so aus, als würden die Parameter nicht korrekt 
übergeben weil die "Usage" angezeigt wird.

Viele Grüße

piet

von Denis L. (denis_l)


Lesenswert?

Matthias F. schrieb:
> Zeig mal die Logs her, was da beim Kompilieren schief geht.
>
> Ich habe im Anhang trotzdem mal ein hex-file für 644p@16MHz mit EMS auf
> USART1 gebaut. Hardware Pollin-AVR.

Danke für die Compilierung.
Warum sind in deinem Hexfile folgende Module unter Showconfig nicht 
gelistet.

 STATUSLED_EMS_RX_FAIL *
STATUSLED_EMS_RX_OK *
STATUSLED_EMS_TX *
STATUSLED_ERROR *
STATUSLED_RX *
STATUSLED_TX


Gruss Denis

von Danny B. (maniac103)


Lesenswert?

Peter W. schrieb:
> Zur Sicherheit habe ich noch aus diesem Block alles mal rausgenommen und
> nur
1
$temptemp =  getHKInfo("day");
dringelassen - die
> Anzeige auf der Webseite bleibt leider die gleiche - also "NaN" - wo
> immer das auch herkommt :-(

Naja, erzeugt wird das ja in Zeile 290:
1
<span id=cnt>
2
<?php
3
printf("%1.1f",$temptemp);
4
?>

D.h. wenn da NaN steht, ist $temptemp nicht (richtig) gesetzt. Guck doch 
mal in den Seitenquelltext (Strg+U) ... was steht da hinter 'var ttemp 
='?

> Bezüglich des Service Problems habe ich in einem Terminal "sudo
> journalctl -f" eingegeben und dann in einem 2. Fenster "sudo service
> ems-collector start".
> Für mich sieht das so aus, als würden die Parameter nicht korrekt
> übergeben weil die "Usage" angezeigt wird.

Definitiv. Was mir grade einfällt ... du hast gesagt, dass du OPTIONS 
komplett auskommentiert hast. An sich auch richtig, aber hast du danach 
SERIALDEVICE auf 'tcp:<host>:7950' gesetzt? Wenn nein, mach das mal ;-)

von Peter W. (piet61)


Angehängte Dateien:

Lesenswert?

Hi Danny,

collectord als Service - LÄUFT!!! Der "SERIALDEVICE" Parameter war es...
1
sudo service ems-collector status
2
● ems-collector.service - LSB: EMS collector daemon
3
   Loaded: loaded (/etc/init.d/ems-collector)
4
   Active: active (running) since Wed 2016-01-13 18:07:11 CET; 9min ago
5
   CGroup: /system.slice/ems-collector.service
6
           └─31518 /usr/local/sbin/collectord --pid-file /var/run/ems-collector.pid -c /etc/ems-collector.conf tcp:192.168.1.60:7950
7
8
Jan 13 18:07:11 raspi2 ems-collector[31513]: Starting EMS collector daemon: collectordPROG= /usr/local/sbin/collectord
9
Jan 13 18:07:11 raspi2 ems-collector[31513]: PIDFILE= /var/run/ems-collector.pid
10
Jan 13 18:07:11 raspi2 ems-collector[31513]: CONFIGFILE= /etc/ems-collector.conf
11
Jan 13 18:07:11 raspi2 ems-collector[31513]: OPTIONS=
12
Jan 13 18:07:11 raspi2 ems-collector[31513]: SERIALDEVICE= tcp:192.168.1.60:7950
13
Jan 13 18:07:11 raspi2 ems-collector[31513]: .
14
Jan 13 18:07:11 raspi2 systemd[1]: Started LSB: EMS collector daemon.

DANKE!!!!

Im Seitenquelltext steht:
1
<table id=main style="display: none;"><tr><td valign=top>
2
<script type="text/javascript">
3
4
var ttemp = 23 ;
5
var sources = new Array('heizactive','wwactive','redmode','tagbetr','autobetr','party','day','night','pause','wwtag','wwmode','zirmode','temptemp');
6
var selsources = new Array('party','day','night','pause','wwtag','wwmode','zirmode');
7
var ttempoff = 23 ;
8
var qenabled = new Array();
9
var currsrc = 0;
10
var activereq = false;
11
var activeRequest = false;
12
var uline = "";
13
.
14
.
15
.
was ja eigentlich richtig wäre - oder?

Wenn ich mit "Firebug" den Quelltext anzeigen lasse dann fällt mir auf, 
dass die variable "ttempoff" den Wert "23" als String (mit 
Anführungszeichen) enthält, wogegen "ttemp" die 23 ohne 
Anführungszeichen enthält...

Hat das was zu bedeuten?

: Bearbeitet durch User
von Peter W. (piet61)


Lesenswert?

... und was ich noch seltsamer finde - im Seitenquelltext im Browser 
steht an der Stelle, wo die Temperatur angezeigt werden soll
1
<td bgcolor=#eeeeee id=ttbgcol width=90px align=center><font size=+1>
2
<span id=cnt>
3
23.0</span></font><font size=-1.5><sup>°C</sup></td>

Die Zeilt mit der 23.0 am Anfang ist bei mir übrigens die Zeile 303...

von Danny B. (maniac103)


Lesenswert?

Na dann wähl doch im Firebug mal das NaN-Element aus und schau, wo das 
herkommt...

von Peter W. (piet61)


Angehängte Dateien:

Lesenswert?

Im Firebug sieht das aus wie im Anhang - aber wie bekommt man heraus, wo 
dieser Wert gesetzt wird?

von Danny B. (maniac103)


Lesenswert?

Hmm, ich würde dann mal einen Breakpoint in die JavaScript-Funktion 
dispv() setzen und schauen, wie sich der Wert von ttemp entwickelt.

von Peter W. (piet61)


Lesenswert?

Hmm, bei der Funktion dispv() ist schon alles zu spät - die Varialbe 
ttemp hat schon den Inhalt NaN...

Ich bin dann wirklich Schritt für Schritt durch das Script getraced und 
die ttemp varialbe wird in Zeile 132 von a_emslive.php auf diesen Wer 
gesetzt - zuvor hatte sie den Wert 23 (bzw. mittlerweile 17 da die 
Anlage schon im Nachtbetrieb läuft...)

Der Code lautet:
1
      } else if (src == "temptemp"){
2
        ttemp=parseFloat(val);
3
        var ttbgcol = document.getElementById("ttbgcol");
4
        if (ttemp == 0){
5
           ttbgcol.style.backgroundColor="#eeeeee";
6
        } else {                                
7
           ttbgcol.style.backgroundColor="#ffffaa";
8
        }
und die fragliche Zeile ist die
1
ttemp=parseFloat(val);
 wobei die Variable 'val' leer ist.

Weiter vorne im Code, ab Zeile 94, wird die Variable 'val' normalerweise 
bestückt.
1
    var rline = xmlhttp.responseText.split("\n");
2
    for (r=0; r<rline.length; r++){
3
      if (rline[r].length < 3) continue;
4
      var info = rline[r].split("=");
5
      var src = info[0];
6
      var val = info[1];

Das Array 'rline' hat bei mir folgenden Inhalt:
1
0  "heizactive="
2
1  "wwactive=on"
3
2  "redmode=aussenhalt"
4
3  "tagbetr=off"
5
4  "autobetr=on"
6
5  "party=0"
7
6  "day=23"
8
7  "night=17"
9
8  "pause=0"
10
9  "wwtag=52"
11
10  "wwmode=auto"
12
11  "zirmode=auto"
13
12  "temptemp="
14
13  ""
und der Variablen 'val' wird der Wert nach dem Gleichheitszeichen 
zugewiesen - was bei "temptemp" fehlschlägt...

Ich werde mal weitersuchen...

von Matthias F. (pullmoll)


Angehängte Dateien:

Lesenswert?

Denis L. schrieb:
> Matthias F. schrieb:
>> Zeig mal die Logs her, was da beim Kompilieren schief geht.
>>
>> Ich habe im Anhang trotzdem mal ein hex-file für 644p@16MHz mit EMS auf
>> USART1 gebaut. Hardware Pollin-AVR.
>
> Danke für die Compilierung.
> Warum sind in deinem Hexfile folgende Module unter Showconfig nicht
> gelistet.
>
>  STATUSLED_EMS_RX_FAIL *
> STATUSLED_EMS_RX_OK *
> STATUSLED_EMS_TX *
> STATUSLED_ERROR *
> STATUSLED_RX *
> STATUSLED_TX
>
>
> Gruss Denis

Ich habe keine LEDs installiert.

Neu kompiliertes Hexfile im Anhang.


So long,

Matthias

von Peter W. (piet61)


Lesenswert?

Hmmm - nun komme ich nicht wirlich weiter :-(

Die Werte werde in der Funktion showInfos() gesetzt - ab Zeile 250
1
function showInfos(){
2
  if (!activeRequest){
3
    var qrysrc = "";
4
    for (currsrc=0; currsrc < sources.length; currsrc++){
5
      var src = sources[currsrc];
6
      if (qenabled[src]) qrysrc = qrysrc + (qrysrc==""?"":"-") + src;
7
    }
8
    activeRequest=true;
9
    xmlhttp.open("GET","ajax.php?seite=emsgetval.ajax&source="+qrysrc+"&id="+Math.random(),true);
10
    xmlhttp.send();
11
  }
12
}

Hier wird das Script 'emsgetval.ajax' ausgeführt. Die Variable 'qrysrc' 
hat bei mir zum Zeitpunkt des Aufrufes den Inhalt
1
"heizactive-wwactive-redmode-tagbetr-autobetr-party-day-night-pause-wwtag-wwmode-zirmode-temptemp"
In der 'emsgetval.ajax' werden die einzelnen Werte mit
1
$inf = getInfo($source,"");
 ermittelt, welche wiederum in der 'emsgetinfo.inc' definiert ist.
Hier steht für die Funktion 'getInfo' folgendes:
1
function getInfo($src,$command){
2
  global $cache;
3
  if (!isset($cache)) $cache=array();
4
  # Warmwasser
5
  $srch = array("wwmode" =>   "ww opmode =",
6
                "zirmode" =>   "zirkpump opmode =",
7
                "spzir" =>   "zirkpump switchpoints =",
8
                "wwtag" =>   "ww settemperature =",
9
                "wwactive" =>   "ww masterswitch =",
10
                "limittemp" =>   "ww maxtemperature =",
11
                "loadled" =>   "ww onetimeloadindicator =",
12
                "tdstat" =>   "ww desinfection =",
13
                "tdday" =>   "ww desinfectionday =",
14
                "tdhour" =>   "ww desinfectionhour =",
15
                "tdtemp" =>   "ww desinfectiontemperature =",
16
  # Heizkreis
17
                "day" =>     "hk1 daytemperature =",
18
                "night" =>     "hk1 nighttemperature =",
19
                "tagbetr" =>    "hk1 daymode =",
20
                "autobetr" =>    "hk1 automode =",
21
                "frost" =>     "hk1 frostsafetemperature =",
22
                "temptemp" =>     "hk1 temperatureoverride =",
23
                "nachtred" =>     "hk1 reducedmodethreshold =",
24
                "urlaubnachtred" =>   "hk1 vacationreducedmodethreshold =",
25
.
26
.
27
.
d.H., für "temptemp" wird "hk1 temperatureoverride" abgefragt, was es ja 
bei mir nicht giebt... da schließt sich der Kreis - aber wie komme ich 
da raus? Kann man einfach einen anderen Prameter in der 'emsgetinfo.inc' 
abfragen? Falls ja, welcher kommt denn in Frage?

von Danny B. (maniac103)


Lesenswert?

Peter W. schrieb:
> d.H., für "temptemp" wird "hk1 temperatureoverride" abgefragt, was es ja
> bei mir nicht giebt... da schließt sich der Kreis - aber wie komme ich
> da raus? Kann man einfach einen anderen Prameter in der 'emsgetinfo.inc'
> abfragen? Falls ja, welcher kommt denn in Frage?

Da deine RC die Funktion nicht unterstützt, kannst du keinen anderen 
Parameter abfragen. Was aber gehen sollte, ist das print in 
emsgetval.ajax so zu ändern:
1
  if (isset($inf)) {
2
    print($source."=".$inf."\n");
3
  }

Was in a_emslive.php auch noch fehlt, ist das Aktualisieren des groß 
dargestellten Wertes, wenn sich 'tagbetr', 'day' oder 'night' ändern...

Ich würde mir mal die Zeit wünschen, das 'richtig' zu machen ... d.h. 
mit einem Cache aller vom Collector gelieferten Werte in einem Cache 
auf Clientseite (d.h. im Javascript) und Ausgabe der Werte rein durch 
Javascript. PHP wäre dann nur noch für die Aktualisierung dieses Caches 
zuständig (Verbinden zum Collector und Abfragen der Werte). Das dürfte 
aber ein größeres Projekt sein :-/

von Peter W. (piet61)


Angehängte Dateien:

Lesenswert?

Hallo Danny,

habe einfach in der 'emsgetinfo.inc' die Zuweisung von "temptemp" auf 
den Wert "indoor targettemperature" geändert.
1
function getInfo($src,$command){
2
  global $cache;
3
  if (!isset($cache)) $cache=array();
4
  # Warmwasser
5
  $srch = array("wwmode" =>   "ww opmode =",
6
                "zirmode" =>   "zirkpump opmode =",
7
                "spzir" =>   "zirkpump switchpoints =",
8
                "wwtag" =>   "ww settemperature =",
9
                "wwactive" =>   "ww masterswitch =",
10
                "limittemp" =>   "ww maxtemperature =",
11
                "loadled" =>   "ww onetimeloadindicator =",
12
                "tdstat" =>   "ww desinfection =",
13
                "tdday" =>   "ww desinfectionday =",
14
                "tdhour" =>   "ww desinfectionhour =",
15
                "tdtemp" =>   "ww desinfectiontemperature =",
16
  # Heizkreis
17
                "day" =>     "hk1 daytemperature =",
18
                "night" =>     "hk1 nighttemperature =",
19
                "tagbetr" =>    "hk1 daymode =",
20
                "autobetr" =>    "hk1 automode =",
21
                "frost" =>     "hk1 frostsafetemperature =",
22
#                "temptemp" =>     "hk1 temperatureoverride =",
23
                "temptemp" =>     "indoor targettemperature =",
24
                "nachtred" =>     "hk1 reducedmodethreshold =",
25
                "urlaubnachtred" =>   "hk1 vacationreducedmodethreshold =",
26
                "absquit"  =>     "hk1 cancelreducedmodethreshold =",
27
                "urlaubt"  =>     "hk1 vacationtemperature =",
28
                "summertime" =>   "hk1 summerwinterthreshold =",
29
                "auslegtemp" =>   "hk1 designtemperature =",
30
.
31
.
32
.

Das erschien mir von allen zur Verfügung stehenden Werten der 
geeignetste zu sein. Nun ist die Anzeige auf der Livestatus Seite 
richtig - auch der Wechsel zwischen Tag- und Nachttemperatur 
funktioniert.

Ich möchte mich nochmal bei Dir für Deine Geduld und Deine große 
Unterstützung bedanken :-) Ohne Deine Hilfe hätte ich das nicht so 
hinbekommen.

Ich werde hier weiter mitlesen - vielleicht kann ich ja nun auch mal den 
einen oder anderen Tip beisteuern...
Ich selbst bin natürlich auch für weitere Hinweise dankbar ;-)



Viele Grüße

piet

von Denis L. (denis_l)


Lesenswert?

Hallo,

ich hab endlich alles am laufen, klasse Arbeit von euch :-).

Ich hab da noch zwei dinge die mich etwas stuzig machen in den ems stats
habe ich ein paar dropped packets

Bytes total:1610670
Bytes good:244151
Bytes dropped:2714
Packets good:13007
Packets bad:1
Packets 1byte:1350830 106353
Packets ack:41 nack:0
Overflow:0
Max fill:4

Ich habe einen 10µf elko genommen kan das daher kommen oder muss es 
nicht ein kerko sein.

Das zweite ist ist es möglich von der Idee her noch ein Display auf den 
AVR zu packen, um alles neben die Heizung ZUM Montieren.

des weiteren habe ich noch zwei unhandles messages im Protokoll.
DATA Unhandled message received(source 0x10, type 0xa4

kommt immer beim auslesen der einstellungen ich hänge die tage mal ein 
logfile hier ins forum.

Grüße  Denis

: Bearbeitet durch User
von Mirko K. (newfhem)


Lesenswert?

Ach, ich habe wieder mal ein Problem.
Nach einigen Stromausfällen, will sich mein NetIO nicht mehr über die 
eingestellte IP ansprechen lassen.
Test mit Original ATMEGA3216PU funktioniert. Komme sowohl mit seriell, 
als auch mit LAN drauf.

Steck ich um auf ATMEGA644P oder testweise auf einen ATMEGA644 (hatte 
ich noch von einem Fehlkauf, da ohne "P") dann habe ich keinen Zugriff, 
selbst wenn ich das HEX-File "ems-netio-644p-deploy" mit Ponyprog 
fehlerfrei schreibe. Dort ist die IP dann 192.168.0.0. Meinen PC stelle 
ich dann immer auf 192.168.0.100 und 255.255.255.0 ein, aber unter 
http://192.168.0.0/ecmd tut sich gar nix (Fehler:Verbindung 
fehlgeschlagen)

Ist es theoretisch möglich, dass der NET-IO defekt ist, aber das Problem 
nicht mit dem ATMEGA3216PU auftaucht? Oder habt Ihr noch andere Ideen, 
was ich testen könnte oder wisst Ihr vlt. auch was die Ursache sein 
könnte?

von Martin B. (martin_b13)


Lesenswert?

Das der Net-IO die eingestellte IP nach einer Stromunterbrechung 
vergisst, hatte ich leider auch schon. Es liegt mit ziemlicher 
Sicherheit an der einkompilierte IP-Adresse bzw. daran das der 
verwendete PC oder bzw. Switch/Router mit der einkompilierte 192.168.0.0 
nicht umgehen kann. Mein Vorschlag wäre ein neues HEX-File mit der 
gewünschten IP-Adresse und der passenden Gateway IP zu kompilieren, 
damit wäre das Problem für alle Zeiten gelöst. An ansonsten mal einen 
anderen Switch/Router verwenden, oder den Net-IO direkt über Ethernet an 
den PC anschießen. Die Netzwerkkarte im PC muss dann allerdings Auto 
MDI-X können oder du benötigst ein Crosskabel/Crossoverkabel, zusätzlich 
musst bei direkter Verbindung Netzwerkeinstellungen also die IP fest 
z.B. auf 192.168.0.100 und 255.255.255.0 vorgegeben werden. Wenn du ein 
Router zwischen PC und Net-IO hast muss der natürlich auch in den IP 
Bereich von 192.168.0.x liegen.

von Mirko K. (newfhem)


Lesenswert?

Hallo Martin,

habe heute aus familiären Gründen meine Bastelei aufgegeben ;)
Trotzdem vielen lieben Dank für Deine Hinweise, die ich gern mal 
getestet hätte, aber hab Verbot g...

von Denis L. (denis_l)


Lesenswert?

Hallo,

kann ich den ems Collector seine Daten an einen fremdem SQL Server 
schicken lassen.

Ich habe keine kommando Übergabe dafür gefunden.
--db-path arg         Path or server:port specification of database 
server
-u [ --db-user ] arg  Database user name
-p [ --db-pass ] arg  Database password

Ist das implementiert.

Danke für die Info

von F. F. (pic18f)


Lesenswert?

Hallo, das ^^ habe ich mich auch schon gefragt. Ich habe mich jetzt in 
SQL etwas eingelesen und habe eine Datenbank von 2GB auf bplaced.net 
generiert. Ich benutze vom Ingo die Gateway-Platine. Ich habe aber keine 
Ahnung wie ich die Daten in die Datenbank bringe und wie die Datenbank 
formatiert sein muß. Am liebsten wäre es mir, wenn ich die Daten mit 
Ingos Platine entsprechend aufbereiten und direkt in die DB schreiben 
könnte. Als Übergangslösung würde ich erstmal den Collector benutzen, 
den ich unter Windows nicht zum Laufen gebracht habe.

von Matthias F. (pullmoll)


Lesenswert?

Im EMS-Wiki steht alles drin:

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

Die Tabellendaten und -schemata werden zur Laufzeit erstellt, wenn noch 
nicht angelegt.

von IngoF (Gast)


Lesenswert?

Denis L. schrieb:
> kann ich den ems Collector seine Daten an einen fremdem SQL Server
> schicken lassen.


Hatte das schon mal so am laufen. Die NAS war mein SQL-Server und auf 
dem Notebook lief der EMS-Collector.

Mein Problem war aber damals dass ich Moosys-Frontend nicht dazu bewegen 
konnte eine Verbindung zu einem MySQL-Server auf einem andern Host 
aufzubauen.

Hie mal meine aktuelle Konfig /etc/ems-collector.conf:
1
ratelimit = 60
2
rc-type = rc35
3
#db-path = 192.168.1.10:3306
4
#db-path = localhost:3306
5
db-user = ems
6
db-pass = istGeheim
7
command-port = 7777
8
data-port = 7778

Meine die erste sukommentierte Zeile könnte Wunder bewirken.

F. F. schrieb:
> Am liebsten wäre es mir, wenn ich die Daten mit
> Ingos Platine entsprechend aufbereiten und direkt in die DB schreiben
> könnte. Als Übergangslösung würde ich erstmal den Collector benutzen,
> den ich unter Windows nicht zum Laufen gebracht habe.

Das war auch ursprünglich mein erster Gedanke.
Aber bin nie dazu gekommen mich damit zu beschäftigen weil ich den 
emscollector dann am laufen hatte.

Ich hatte vor dem Collector mal ein Java-Programm dass mir die Daten vom 
Windows-PC in eine MySQL-Datnbank schrieb.

Hatte den EMS-Gateway über USB-Serial am Windows-PC angeschlossen und 
dann über das Java-Programm die Daten in die MySQL-geschrieben.

Das war aber ein leicht anderes Datenformat. Die Programm sollten noch 
im Downloadbereich der EMSWIKI sein. (ems-tools??)

Dabei ist auch ein Prpgramm dass die Daten aus der MySQL ausliest und 
grafisch darstellt.

von IngoF (Gast)


Lesenswert?

Matthias F. schrieb:
> Im EMS-Wiki steht alles drin:

Ups.. ich hatte immer mal vorgehabt das in die Wiki einzutragen...

Habs wohl gemacht und wieder vergessen oder ein anderer hat es 
eingetragen.

von Denis L. (denis_l)


Lesenswert?

Hallo IngoF.

ich brauche die Möglichkeit den Collector ohne config file mit einem 
fremden Datenbankserver zu verbinden da ich das ganze auf einen Docker 
Image Viritualisier.

Der Hintergrund ist ich habe hier die Möglichkeit über die 
Visualisierung direct SQL anzusprechen und abzufragen.

Also das ganze sollte nachher so aussehen.
docker Image nur Collector.

Nas mit Webserver und SQL Server und einer Gebäudeleittechnik Visu.

Deshalb wäre es interresant ob ich den DB-Connect direkt an der Konsole 
weitergeben kann ohne conf file.

Also eigentlich brauche ich nur den Kommandozeilenparameter für den sql 
connct.

Danke und Gruß

Denis

: Bearbeitet durch User
von IngoF (Gast)


Lesenswert?

Denis L. schrieb:
> docker Image nur Collector.

Habe docker zum ersten mal gehört...
Warum kann man dort keine Config-Datei benutzen?

Notfalls einfach die .PHP .py Dateien vom collector nach dem Datenbank 
aufbau durchsuchen.

Irgendwo muss die Config Datei ja auch importiert werden. Dort dann 
notfalls die Werte selber eintragen.

von Denis L. (denis_l)


Lesenswert?

IngoF schrieb:
> Habe docker zum ersten mal gehört...
> Warum kann man dort keine Config-Datei benutzen?

Doch Docker kann auch config Dateien.

Aber so hast du nur ein File im etc/init.d und gut ist
die ganze Geschichte hängt zur Zeit bei mit nur daran das es kein 
Kanndozeilenparameter gibt für den SQL Connect gibt.

#!/bin/bash
/etc/init.d/mysql start
/etc/init.d/lighttpd start
/ems-collector/collectord -u user -p password -f -d 
all=/var/www/logs/ems.log tcp:192.168.2.41:7950 -P /var/www/pid/ems.pid 
-R rc30 -C 7777 -D 7778  > /dev/null 2>1 &

-u
-p

und die SQL ip ???????

Das ist die ganze Hexerei.
Vielleicht sollte beim nächsten release des Collector das mal 
eingepflegt werden.

: Bearbeitet durch User
von IngoF (Gast)


Lesenswert?

Denis L. schrieb:
> IngoF schrieb:
>> Habe docker zum ersten mal gehört...
>> Warum kann man dort keine Config-Datei benutzen?
>
> Doch Docker kann auch config Dateien.
>
> Aber so hast du nur ein File im etc/init.d und gut ist
> die ganze Geschichte hängt zur Zeit bei mit nur daran das es kein
> Kanndozeilenparameter gibt für den SQL Connect gibt.
>
> #!/bin/bash
> /etc/init.d/mysql start
> /etc/init.d/lighttpd start
> /ems-collector/collectord -u user -p password -f -d
> all=/var/www/logs/ems.log tcp:192.168.2.41:7950 -P /var/www/pid/ems.pid
> -R rc30 -C 7777 -D 7778  > /dev/null 2>1 &
>
> -u
> -p
>
> und die SQL ip ???????
>
> Das ist die ganze Hexerei.
> Vielleicht sollte beim nächsten release des Collector das mal
> eingepflegt werden.

Achso.. Es funktioniert mit den Konfig-File und Du möchtest das einfach 
nur einsparen..

Soweit ich weiss wird das Config-File ja nur importiert.
Statt das Config-File zu importieren kannst Du ja statt des Imports 
einfach die Konfiguration selber in die .PY oder .PHP Datei eingeben.

von Denis L. (denis_l)


Lesenswert?

IngoF schrieb:

>
> Soweit ich weiss wird das Config-File ja nur importiert.
> Statt das Config-File zu importieren kannst Du ja statt des Imports
> einfach die Konfiguration selber in die .PY oder .PHP Datei eingeben.

du meinst in dem collector selbst, denn der kollector muss ja schon auf 
einen fremden SQL Server schreiben

von IngoF (Gast)


Lesenswert?

Ja, den habe ich gemeint...

von Denis L. (denis_l)


Lesenswert?

IngoF schrieb:
> Ja, den habe ich gemeint...

Ich schau mir das mal an,
aber vielleicht tut Danny Baumann das mal implementieren, dann kannst du 
dir den ganzen config quatsch sparen da alle Parameter bein start an den 
collector deamon übergeben werden können

von Danny B. (maniac103)


Lesenswert?

Denis L. schrieb:
> IngoF schrieb:
>> Ja, den habe ich gemeint...
>
> Ich schau mir das mal an,
> aber vielleicht tut Danny Baumann das mal implementieren, dann kannst du
> dir den ganzen config quatsch sparen da alle Parameter bein start an den
> collector deamon übergeben werden können

Hab ich doch schon lange...
collectord --db-path sqlserver:port -u sqluser -p sqlpass ...
(Steht aber doch auch so im Hilfetext?)

von Denis L. (denis_l)


Lesenswert?

Danny B. schrieb:
> Denis L. schrieb:
>> IngoF schrieb:
>>> Ja, den habe ich gemeint...
>>
>> Ich schau mir das mal an,
>> aber vielleicht tut Danny Baumann das mal implementieren, dann kannst du
>> dir den ganzen config quatsch sparen da alle Parameter bein start an den
>> collector deamon übergeben werden können
>
> Hab ich doch schon lange...
> collectord --db-path sqlserver:port -u sqluser -p sqlpass ...
> (Steht aber doch auch so im Hilfetext?)

es gibt aber kein kommandozeilen Parameter für den SQL connect
der user ist mit -u definiert.
das Password mit -p definiert.
und der SQL Server also -? 192.168.2.2:3306.

denn das Kommando "collectord --db-path 192.168.2.2:3306 -u user -p pw 
geht irgendwie nicht.

von Danny B. (maniac103)


Lesenswert?

>> /ems-collector/collectord -u user -p password -f -d
>> all=/var/www/logs/ems.log tcp:192.168.2.41:7950 -P /var/www/pid/ems.pid
>> -R rc30 -C 7777 -D 7778  > /dev/null 2>1 &

Wenn du das -f weg lässt, kannst du auch das & weglassen ... wozu erst 
im Vordergrund starten und dann in den Hintergrund verschieben, wenn man 
auch gleich als Daemon starten kann?

> Soweit ich weiss wird das Config-File ja nur importiert.
> Statt das Config-File zu importieren kannst Du ja statt des Imports
> einfach die Konfiguration selber in die .PY oder .PHP Datei eingeben.

Bitte was? Python und PHP gibt es im Collector nicht...

von Alex (Gast)


Lesenswert?

Hi,

ich will mir den EMS-Adapter
http://ems-gateway.myds.me/dokuwiki/doku.php?id=wiki:ems:net_io
bauen. Bei Reichelt ist der 10µF 63 V bipolar-Elko (Tonfrequenzelko) im 
Moment nicht lieferbar.
Gibt es Alternativen?
Ich hätte hier noch einen WIMA 10µF MKS 4 100 V, aber der ist riesig.

Danke!

Alex

von Alex (Gast)


Lesenswert?

Ups, es gibt auch eine 100 V Version von dem bipolaren Elko. Hat sich 
damit erledigt.

von Danny B. (maniac103)


Lesenswert?

>> Hab ich doch schon lange...
>> collectord --db-path sqlserver:port -u sqluser -p sqlpass ...
>> (Steht aber doch auch so im Hilfetext?)
>
> es gibt aber kein kommandozeilen Parameter für den SQL connect

Doch: --db-path.

> der user ist mit -u definiert.
> das Password mit -p definiert.

Richtig.

> und der SQL Server also -? 192.168.2.2:3306.

--db-path 192.168.2.2:3306

> denn das Kommando "collectord --db-path 192.168.2.2:3306 -u user -p pw
> geht irgendwie nicht.

Geht das noch etwas genauer?

von Denis L. (denis_l)


Lesenswert?

Danny B. schrieb:

> --db-path 192.168.2.2:3306
>
>> denn das Kommando "collectord --db-path 192.168.2.2:3306 -u user -p pw
>> geht irgendwie nicht.
>
> Geht das noch etwas genauer?

Also wenn ich den collector so starte:


/ems-collector/collectord --db-path 192.168.2.7:3306 -u user -p password 
-d all=/var/www/logs/ems.log tcp:192.168.2.41:7950 -P 
/var/www/pid/ems.pid -R rc30 -C 7777 -D 7778  > /dev/null 2>1

dann kommt die Hilfe in der Kommandozeile des Collectord

von Danny B. (maniac103)


Lesenswert?

Denis L. schrieb:
> Also wenn ich den collector so starte:
>
>
> /ems-collector/collectord --db-path 192.168.2.7:3306 -u user -p password
> -d all=/var/www/logs/ems.log tcp:192.168.2.41:7950 -P
> /var/www/pid/ems.pid -R rc30 -C 7777 -D 7778  > /dev/null 2>1
>
> dann kommt die Hilfe in der Kommandozeile des Collectord

Ja, weil 'target' (d.h. tcp:192.168.2.41:7950) die letzte Option sein 
muss. Steht auch so im Hilfetext.

von IngoF (Gast)


Lesenswert?

Danny B. schrieb:
> Bitte was? Python und PHP gibt es im Collector nicht...

Sorry, war schon länger her das ich mich damit beschäftigt hatte ....
Habe mich mit dem Frontend vertan.

von Denis L. (denis_l)


Lesenswert?

Danny B. schrieb:
> Denis L. schrieb:
>> Also wenn ich den collector so starte:
>>
>>
>> /ems-collector/collectord --db-path 192.168.2.7:3306 -u user -p password
>> -d all=/var/www/logs/ems.log tcp:192.168.2.41:7950 -P
>> /var/www/pid/ems.pid -R rc30 -C 7777 -D 7778  > /dev/null 2>1
>>
>> dann kommt die Hilfe in der Kommandozeile des Collectord
>
> Ja, weil 'target' (d.h. tcp:192.168.2.41:7950) die letzte Option sein
> muss. Steht auch so im Hilfetext.

Ok
Danke probier das später mal aus.
d.H:
collectord --db-path 192.168.2.7:3306 -u user -p Password -d 
all=/var/www/logs/ems.log -P /var/www/pid/ems.pid -R rc30 -C 7777 -D 
7778 tcp:192.168.2.41:7950   > /dev/null 2>1

sollte alles funktionieren.

Danke gruß Denis

von Juergen O. (juergen_o)


Lesenswert?

Alex schrieb:
> Bei Reichelt ist der 10µF 63 V bipolar-Elko (Tonfrequenzelko) im
> Moment nicht lieferbar.
> Gibt es Alternativen?

Nimm doch einfach nen 10uF SMD-Kondensator:

Reichelt Artikel-Nr.: X7R-G1206 10/16

von Denis L. (denis_l)


Lesenswert?

Denis L. schrieb:
> Danny B. schrieb:
>
>> --db-path 192.168.2.2:3306
>>
>>> denn das Kommando "collectord --db-path 192.168.2.2:3306 -u user -p pw
>>> geht irgendwie nicht.
>>
>> Geht das noch etwas genauer?
>
> Also wenn ich den collector so starte:
>
>
> /ems-collector/collectord --db-path 192.168.2.7:3306 -u user -p password
> -d all=/var/www/logs/ems.log tcp:192.168.2.41:7950 -P
> /var/www/pid/ems.pid -R rc30 -C 7777 -D 7778  > /dev/null 2>1
>
> dann kommt die Hilfe in der Kommandozeile des Collectord

Hab das ganze nun am laufen läuft super.
Collector im docker image aus NAS Server
und webseite aus Webserver des NAS.

Super Arbeit Danny B. :-)

von Denis L. (denis_l)


Lesenswert?

Hallo,

habe heute gesehen es gibt einen neuen COllector auf Github.
was ist das für eine option und was macht SIe.

  --mqtt-broker arg     MQTT broker address (<host>:<port>)

Danke gruss Denis

von Danny B. (maniac103)


Lesenswert?

Denis L. schrieb:
> habe heute gesehen es gibt einen neuen COllector auf Github.
> was ist das für eine option und was macht SIe.
>
>   --mqtt-broker arg     MQTT broker address (<host>:<port>)

MQTT ist ein Messaging-Protokoll. Ich benutze das, um die EMS-Daten in 
OpenHAB reinzubringen. Irgendwann will ich auch noch die andere Richtung 
machen (d.h. EMS-Steuerbefehle aus OpenHAB absetzen), aber dafür muss 
ich noch einiges umbauen ... ist mir im Moment zu viel Aufwand.

Wenn du nach MQTT und OpenHAB googlest, findest du einige Blogeinträge 
und Tutorials dazu, die auch die Begriffe erklären ... z.B. 
hier:https://openhardwarecoza.wordpress.com/2015/03/29/openhab-mqtt-arduino-and-esp8266-part-1-setting-up-your-environment/

von Denis L. (denis_l)


Lesenswert?

Danny B. schrieb:
> Denis L. schrieb:
>> habe heute gesehen es gibt einen neuen COllector auf Github.
>> was ist das für eine option und was macht SIe.
>>
>>   --mqtt-broker arg     MQTT broker address (<host>:<port>)
>
> MQTT ist ein Messaging-Protokoll. Ich benutze das, um die EMS-Daten in
> OpenHAB reinzubringen. Irgendwann will ich auch noch die andere Richtung
> machen (d.h. EMS-Steuerbefehle aus OpenHAB absetzen), aber dafür muss
> ich noch einiges umbauen ... ist mir im Moment zu viel Aufwand.
>
> Wenn du nach MQTT und OpenHAB googlest, findest du einige Blogeinträge
> und Tutorials dazu, die auch die Begriffe erklären ... z.B.
> 
hier:https://openhardwarecoza.wordpress.com/2015/03/29/openhab-mqtt-arduino-and-esp8266-part-1-setting-up-your-environment/

Das ist doch mal eine nette sache viel erfolg bei der Arbeit.

Hab den Collector nun isoliert auf einen docker image im NAS Server 
laufen.
Web fontend läuft auf dem Webserver des NAS.
Moosy Webfont läuft super musste nur die DB adressen anpassen.

Danke Denis

von Dennis (Gast)


Lesenswert?

Dennis schrieb:
> Ohne Speicher Oszilloscop werde ich hier aber wohl nicht mehr weiter
> kommen

Hallo,
ich wollte mich auf meine Beiträge vom November einmal zurückmelden.
Ich konnte an einer GB132T keine Verbindung mit dem NET-IO aufbauen, an 
meiner GB142 aber schon.
Durch einen "Zufall" wissen wir nun grob woran es lag. Es gab sporadisch 
immer einmal Fehlermeldungen was den Brenner betraf.

Wir haben nun daraufhin die UBA getauscht, und siehe da alles geht!
Keine Störungen mehr und der NET-IO wird auch als Busteilnehmer 
angezeigt...!

Mich würde nun nur interessieren was da auf der UBA wohl defekt ist... 
:-(


Gruß
Dennis

von IngoF (Gast)


Lesenswert?

Denis L. schrieb:
> Hab das ganze nun am laufen läuft super.
> Collector im docker image aus NAS Server
> und webseite aus Webserver des NAS.
>
> Super Arbeit Danny B. :-)

Hallo Denis,

habe mal ein wenig geforscht. Wie hast Du dass denn im Docker zum laufen 
bekommen? Auf Ubunuto kompiliert und dann in einem Ubuntu-Container am 
laufen?

Wäre daran auch interessiert. Wollte collectorD schon immer auf einer 
von meinen Diskstations zum laufen bekommen.
Habe direktes Kompilieren geht wegen dem veralteten GCC nicht. Und alle 
anderen Möglichkeiten habe ich auch nicht zum laufen bekommen. Was hast 
Du denn für eine DS?

Habe eine 212+ und 415+

von Denis L. (denis_l)


Lesenswert?

IngoF schrieb:
> Denis L. schrieb:
>> Hab das ganze nun am laufen läuft super.
>> Collector im docker image aus NAS Server
>> und webseite aus Webserver des NAS.
>>
>> Super Arbeit Danny B. :-)
>
> Hallo Denis,
>
> habe mal ein wenig geforscht. Wie hast Du dass denn im Docker zum laufen
> bekommen? Auf Ubunuto kompiliert und dann in einem Ubuntu-Container am
> laufen?
>
> Wäre daran auch interessiert. Wollte collectorD schon immer auf einer
> von meinen Diskstations zum laufen bekommen.
> Habe direktes Kompilieren geht wegen dem veralteten GCC nicht. Und alle
> anderen Möglichkeiten habe ich auch nicht zum laufen bekommen. Was hast
> Du denn für eine DS?
>
> Habe eine 212+ und 415+

Nimm dir Docker auf DSM,

dann nimm ein Debian wheezy Docker image, installier mit apt wie in der 
Beschreibung für den raspi alle nötigen Packete.

Dann habe ich wie Du oben lesen kannst ein startscript und dann muss du 
nur noch deine docker ip wissen vom host.
der Hostserver braucht dann noch mariadb.
Dann das web fontend drauf und gut.


Gruss Denis

von Grünbacher (Gast)


Lesenswert?

Hallo,
ich habe jetzt auch alles soweit aufgebaut,
leider habe ich auch Probleme mit den Packets.

Bytes total:20046
Bytes good:75
Bytes dropped:0
Packets good:8
Packets bad:886
Packets 1byte:34 0
Packets ack:0 nack:0
Overflow:165
Max fill:3

Ich habe schon 2 mal alles überprüft und finde den Fehler nicht,
das einzige was ich anders habe ist C5, da habe ich einen normalen
Elko genommen mit + nach R14, sollte so richtig sein.

Falls noch jemand eine Platine los werde möchte, so würde ich sie gerne 
nehmen, bevor ich noch Stunden der Suche verbruzzel,
oder hat jemand eine Idee wo ich welches Signal messen kann um den 
Fehler zu finden, Oszi ist vorhanden.

Danke
Sven

von Torsten G. (regengott)


Angehängte Dateien:

Lesenswert?

Liebe EMS-Gemeinde

ich habe verzweifele gerade an der Bestückung der Platine, weil mir

a) eine Bestückungsplan fehlt (der Breadbord Designer schmiert sowohl 
unter OSX, als auch unter Debian und Windows mit der im Wiki 
hinterlegten .bb-Datei mit java-Fehlern ab)

b) es für mein Gefühl Diskrepanzen zwischen dem im Wiki hinterlegten 
Schaltplan und dem Lochraster-Layout gibt, so dass ich die Bauteile auch 
auf diesem Weg nicht identifizieren kann.

Könnte bitte jemand einen Bestückungsplan (wenn das der richtige 
Ausdruck für "Ein Bild von der Lochrasterplatine mit Bezeichnung und 
Wert der Bauteile") posten? Oder den beigefügten Plan (xml zu bearbeiten 
auf draw.io) verifizieren und korrigieren?

In einem Beitrag vom 15.11.15 hat der User "Passuff" einen solchen 
gepostet, dieser wurde jedoch nie verifiziert und enthält einige 
Modifikationen zum Original.

Danke & Viele Grüße
T.

(Edit: eigener Stand Bestückungsliste hinzugefügt)
(Edit2: Sorry, finde keinen Weg die überflüssigen Bilder zu löschen)

: Bearbeitet durch User
von Christian (Gast)


Lesenswert?

Hi,

mein Net-IO hat zuletzt die Konfiguration verloren. Eventuell liegt das 
an der Brown out detection, die war bei mir nämlich aus (ich habe mich 
bei den Fuses an die Angaben von http://emswiki.thefischer.net/ 
gehalten).

Gibt es die Möglichkeit, die Funktionalität der Net-IO Platine in den Pi 
zu integrieren? Ich habe keine Netzwerkports mehr frei...

Grüße,
Chris

von Danny B. (maniac103)


Lesenswert?

Christian schrieb:
> Hi,
>
> mein Net-IO hat zuletzt die Konfiguration verloren. Eventuell liegt das
> an der Brown out detection, die war bei mir nämlich aus (ich habe mich
> bei den Fuses an die Angaben von http://emswiki.thefischer.net/
> gehalten).
>
> Gibt es die Möglichkeit, die Funktionalität der Net-IO Platine in den Pi
> zu integrieren? Ich habe keine Netzwerkports mehr frei...

Nein, weil Standard-Betriebssysteme keine sinnvolle Möglichkeit für die 
Verarbeitung der Break-Conditions haben.

von Florian R. (florianr)


Lesenswert?

Guten Abend,

habe mich in Tagelanger Aktion durch das EMS Wiki gequält und bin jetzt 
beim Server auf dem Raspberry angelangt. Net-IO bis zum testtool 
funktioniert glücklicherweise.

Leider schmeißt mir das "make" zum Erstellen des collectord immer ein 
paar Fehler:
1
pi@raspberrypi ~/ems-collector/collector $ make
2
g++ -Wall -c -O2 -std=c++0x -DHAVE_DAEMONIZE main.cpp
3
In file included from main.cpp:25:0:
4
CommandHandler.h:70:51: error: expected ‘;’ at end of member declaration
5
CommandHandler.h:70:53: error: ‘override’ does not name a type
6
In file included from main.cpp:35:0:
7
TcpHandler.h:34:52: error: expected ‘;’ at end of member declaration
8
TcpHandler.h:34:54: error: ‘override’ does not name a type
9
TcpHandler.h:35:56: error: expected ‘;’ at end of member declaration
10
TcpHandler.h:35:58: error: ‘override’ does not name a type
11
Makefile:48: recipe for target 'main.o' failed
12
make: *** [main.o] Error 1
Die EMC-Collector files von github sind aktuell von heute. Spontan 
konnten meine rudimentären Kenntnisse keine Fehler in der 
CommandHandler.h und TcpHandler.h erkennen.

Hat jemand einen Lösungsansatz?

Gruß Florian


PS: Volle Ladung mitgenommen... Billiger Diamex ISP Programmer lief 
nicht. NetIO wollte nicht ins Netzwerk, Fusebits auf dem ATMega32 von 
Pollin waren falsch, Dann zunächst einen ATMega 644 20PU bestellt. Geht 
natürlich nicht. Also noch einen 644p.Irgendwann lief dann Ethersex. Auf 
meinem Raspberry2 lief noch ein apache2. Also startete der lighttpd 
nicht weil Port 80 belegt war. Und jetzt der Fehler beim Compilieren :/ 
Geht das allen so?

von Danny B. (maniac103)


Lesenswert?

Welche GCC-Version verwendest du? Wenn der Compiler das 
'override'-Schlüsselwort nicht kennt, scheint er zu alt zu sein.

von Florian R. (florianr)


Lesenswert?

War auf gcc 4.6. Standard wheezy wie ich lesen konnte.
Habe noch 4.9 installiert und als default eigerichtet. Bis auf ein paar 
"warning: swp{b} use is deprecated for ARMv6 and ARMv7" lief es durch.

Danke!

von Florian R. (florianr)


Lesenswert?

Nächstes Problem:

collectord ließ sich nach dem Kompilieren im /ems-collector/collector 
nicht ausführen. Datei wurde nicht gefunden, war aber im Verzeichnis 
vorhanden.
Habe dann gemäß Readme die Punkte Install, Config und Service ausgeführt 
und daraufhin war die collectord auch über die Konsole ausführbar. Gibt 
aber bei egal welchem Befehl nur die Hilfe aus.
1
 service ems-collector start
 gibt ebenso die Hilfe aus und endet mit einem "failed". Der collector 
wird also nicht gestartet.

-> Woran kann das liegen?
-> Welche Daten müssen bei db-user und db-pass in die config? Der mysql 
login, welcher im Wiki unter "MySql Benutzer anlegen" erzeugt wird? Ich 
kenne mich mit Datenbanken und Servern kaum aus.
Wenn mir jemand die grobe Struktur mit Standardverzeichnissen erläutern 
kann, wäre ich sehr dankbar.

-> Hab ich es richtig verstanden, dass es sich beim Frontend von Moosy 
um eine fertige GUI handelt? Wie wird darauf zugegriffen - sprich wie 
entsteht der Link zum /var/www, aus welche bei Aufrufen der Pi-IP die 
index.php ausgeführt wird?


Viele Grüße und angenehmen Sonntag
Florian

von IngoF (Gast)


Lesenswert?

Denis L. schrieb:
> dann nimm ein Debian wheezy Docker image, installier mit apt wie in der
> Beschreibung für den raspi alle nötigen Packete.

habe z.B. pacour/debuian-wheezy genommen.
Allerdings wird es sofort wieder unerwartet beendet.

Wie bekomme ich denn ein Terminal oder irgendwas um die Sachen per APT 
nachzuinstallieren? Terminal soll ja auf der Diskstation nicht gehen, 
oder?

Was hast Du denn für ein Wheezy-Image genommen? In der Sucher werden ja 
>24000 Docker Wheezy-Images angezeigt.

Hast Du Dir den Container auf einem anderen Rechner zusammengebastelt, 
oder direkt auf der Diskstation?

Gruß
Ingo

von Frank S. (blaueslicht)


Angehängte Dateien:

Lesenswert?

Hallo Freunde,
da mein zukünftiges Haus eine Viessmann Heizung hat, wäre hier eine EMS 
Platine + NetIO zu haben. Gewinnt zwar keinen Schönheitswettbewerb, aber 
funktioniert einwandfrei und ist somit kampferprobt :)
Wenn Interesse bitte Ich um ein faires Gebot per PN. Gruß

von IngoF (Gast)


Angehängte Dateien:

Lesenswert?

Torsten G. schrieb:
> Könnte bitte jemand einen Bestückungsplan (wenn das der richtige
> Ausdruck für "Ein Bild von der Lochrasterplatine mit Bezeichnung und
> Wert der Bauteile") posten? Oder den beigefügten Plan (xml zu bearbeiten
> auf draw.io) verifizieren und korrigieren?

Da bisher keiner helfen konnte habe ich mich mal daran gewagt.
Habe mein Ergebnis als XML und Screenshot angehangen.

Bin mir ziemlich sicher dass es so stimmt. Die Komperatoren im Layout 
sind zum Schaltplan vertauscht. Vielleicht kam daher die Fehlzuordnung.

Ich habe die Schaltung aber nie aufgebaut da ich kein NetIO habe.

Habe den C6 auch noch eingezeichnet. Auch bitte die fehlende Leiterbahn 
zwischen den beiden BAT42 nicht vergessen.

Bitte mal Rückmeldung geben wenn Deine Platine erfolgreich getestet 
wurde.

Gruß
Ingo

von Torsten G. (regengott)


Lesenswert?

@IngoF: Vielen Dank - ich werde testen und Feedback geben. Ich würde 
mich dann drum kümmern, dass der verifizierte Plan in's ems_netio Wiki 
kommt (gleich auch in der gespiegelten Version sight ;-) )

von IngoF (Gast)


Lesenswert?

Torsten G. schrieb:
> @IngoF: Vielen Dank - ich werde testen und Feedback geben. Ich
> würde
> mich dann drum kümmern, dass der verifizierte Plan in's ems_netio Wiki
> kommt (gleich auch in der gespiegelten Version sight ;-) )

Habe ich schon gemacht. Eventuell Seite nochmal aktualisieren falls die 
Änderungen noch nicht zu sehen sind.

von Helmut J. (helmbrot)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

Ich habe nach dem Wiki und den Forenbeiträgen ein System aus
Adapterplatine, AVR NET IO und zur Zeit Ubuntu ( wird später Raspberry) 
aufgebaut. Ich teste im Moment die Kommunikation mit dem  Collector 
Testtool.

Dabei habe ich folgendes Probelm:

Die RX LED auf der Adapterplatine leuchtet von Zeit zu Zeit.
Mit dem Collector Testtool (V0.4)bekomme ich nach dem Verbinden 
folgendes Telegramm:

4F 52 3A 20 43 6F 6E 6E 65 63 74 69 6F 6E 20 62 6C 6F 63 6B 65 64 0A

Die Abfrage der Uhrzeit mit:
0B 90 06 00 08
antwortet mit …

Das Testprogramm
collectord -u ems -p geheim -f -d all tcp:192.168.178.100:7950
bringt:
helmut@helmut-VirtualBox:~$ collectord -u ems -p geheim -f -d all 
tcp:192.168.178.100:7950
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 0xaa 0x55 0x5 0xce 0xfd 0xd3 0xee 0x96 0x98
MESSAGE[07.03.2016 18:59:44]: source 0xce, dest 0xfd, type 0xd3, offset 
238, data: 0x96
IO: Got bytes 0xaa 0x55 0x6 0xf6 0x1 0x24 0xff 0xff 0x31 0xe2
MESSAGE[07.03.2016 19:00:07]: source 0xf6, dest 0x01, type 0x24, offset 
255, data: 0xff 0x31
DATA: Unhandled message received(source 0xf6, type 0x24).

Hat jemand eine Idee was das zu bedeuten hat? Übertragungsprobleme?

von Danny B. (maniac103)


Lesenswert?

Helmut J. schrieb:
> Die RX LED auf der Adapterplatine leuchtet von Zeit zu Zeit.
> Mit dem Collector Testtool (V0.4)bekomme ich nach dem Verbinden
> folgendes Telegramm:
>
> 4F 52 3A 20 43 6F 6E 6E 65 63 74 69 6F 6E 20 62 6C 6F 63 6B 65 64 0A

Das ist 'Connection blocked'. Du hast mehrere Programme laufen, die sich 
mit dem NetIO verbinden. Das geht nicht, d.h. du musst das überzählige 
Programm beenden.
>
> Die Abfrage der Uhrzeit mit:
> 0B 90 06 00 08
> antwortet mit …
>
> Das Testprogramm
> collectord -u ems -p geheim -f -d all tcp:192.168.178.100:7950
> bringt:
> helmut@helmut-VirtualBox:~$ collectord -u ems -p geheim -f -d all
> tcp:192.168.178.100:7950
> 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

Das hier ist das gleiche.

von Denis L. (denis_l)


Lesenswert?

IngoF schrieb:
> Denis L. schrieb:
>> dann nimm ein Debian wheezy Docker image, installier mit apt wie in der
>> Beschreibung für den raspi alle nötigen Packete.
>
> habe z.B. pacour/debuian-wheezy genommen.
> Allerdings wird es sofort wieder unerwartet beendet.
>
> Wie bekomme ich denn ein Terminal oder irgendwas um die Sachen per APT
> nachzuinstallieren? Terminal soll ja auf der Diskstation nicht gehen,
> oder?
>
> Was hast Du denn für ein Wheezy-Image genommen? In der Sucher werden ja
>>24000 Docker Wheezy-Images angezeigt.
>
> Hast Du Dir den Container auf einem anderen Rechner zusammengebastelt,
> oder direkt auf der Diskstation?
>
> Gruß
> Ingo

Nimm Dir mal im Docker Menu auf DSM Das Orginal Debian Image.
Du erkennst das an dem auszeichnungs Symbol
Dann kann DU auch auswählen ob jeesy oder Wheezy.
Ich benutze im Docker den Terminal, DU kannst aber auch einen SSH zugang 
zum Image einrichten.
Denk daran dann den Port 22 im DOcker Image freizugeben

von IngoF (Gast)


Lesenswert?

Helmut J. schrieb:
> Ich habe nach dem Wiki und den Forenbeiträgen ein System aus
> Adapterplatine, AVR NET IO

Warum hast Du denn eine gespiegeltes Layout angehangen?

von IngoF (Gast)


Lesenswert?

Denis L. schrieb:
> Ich benutze im Docker den Terminal,

Das war mein Problem ich habe das Terminal im Docker auf der DS nicht 
gefunden....

Habe es aber jetzt per Zufall gefunden:
container > details > terminal

von Helmut J. (helmbrot)


Lesenswert?

Danke,
da hätte ich auch selber drauf kommen können, ich werde es ausprobieren.

von Torsten G. (regengott)


Lesenswert?

Hallo in die Runde

so, next step: der Net-IO!

ich hoffe, dass das nicht allzu off-topic ist, aber da ich für das eine 
Mal die Anschaffung eines dedizierten ISP-Programmers scheue, würde ich 
den 644p mit der low-cost-variante "ArduinoISP" programmieren wollen 
(https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard)

Jetzt die Noob-Frage: muss ich auf den 644p auch zuerst einen bootloader 
drauf machen oder reicht es, das hex-File aus dem wiki mit avrdude zu 
brennen?

Viele Grüße
Torsten

von Karl M. W. (charlie-w)


Lesenswert?

Torsten G. schrieb:
> reicht es, das hex-File aus dem wiki mit avrdude zu brennen?

Ja!

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

von Helmut J. (helmbrot)


Lesenswert?

Hallo an die Runde,
ich versuche gerade unter XUbuntu auf meinem alten Rechner den Collector 
zu installieren. Ich komme leider mur bis zum make im Wiki:

"... MySQL database support' sagt, und entfernen die Raute am Anfang der 
3 Zeilen danach.
Danach sollte Ein „make“ die ausführbare Datei „collectord“ erzeugen. 
Bis der Raspberry das erledigt hat, könnt Ihr Euch eine Tasse Kaffee 
genehmigen. ;-)"

Fehlermeldung:
root@helmut-SCENIC-L:/home/helmut/ems-collector/collector# make
g++ -Wall -c -O2 -std=c++0x -DHAVE_DAEMONIZE -DHAVE_MYSQL -MM main.cpp 
IoHandler.cpp SerialHandler.cpp TcpHandler.cpp CommandHandler.cpp 
ApiCommandParser.cpp CommandScheduler.cpp DataHandler.cpp EmsMessage.cpp 
ValueApi.cpp ValueCache.cpp Options.cpp PidFile.cpp Database.cpp > 
.depend
g++ -Wall -c -O2 -std=c++0x -DHAVE_DAEMONIZE -DHAVE_MYSQL main.cpp
In file included from main.cpp:28:0:
Database.h:25:38: fatal error: mysql/mysql++/connection.h: Datei oder 
Verzeichnis nicht gefunden
 #include <mysql/mysql++/connection.h>
                                      ^
compilation terminated.
make: *** [main.o] Fehler 1

Die einzige Besonderheit bei der Installation war: Statt der 
libboost1.50-all musste ich die libboost1.54-all nehme, da es unter 
XUbuntu die 50 und auch 49 nicht gab.

Hat jemand eine Idee, ich bin leider kein Linux Spezialist????

von Karl M. W. (charlie-w)


Lesenswert?

Helmut J. schrieb:
> fatal error: mysql/mysql++/connection.h: Datei oder
> Verzeichnis nicht gefunden

... er findet /usr/include/mysql/mysql++/connection.h nicht.

Danny hat in seinem letzten commit ein paar Pfade geändert. (Danny?)

Setze mal bitte folgende Befehle ab und versuche es dann nochmal:

cd /usr/include/mysql
ln -s /usr/include/mysql++ mysql++

hth

von Danny B. (maniac103)


Lesenswert?

Fixed, sorry :-/

Damit Raum-Ist- und -Solltemperatur ordentlich in die DB geschrieben 
werden, werde ich demnächst mal noch eine Option für die Anzahl der 
angeschlossenen Heizkreise einführen (die beiden Temperaturen sind jetzt 
HK-spezifisch, da das auf dem Bus auch so ist).

von Helmut Jato(Helmbrot) (Gast)


Lesenswert?

Karl M. W. schrieb:
> Helmut J. schrieb:
>> fatal error: mysql/mysql++/connection.h: Datei oder
>> Verzeichnis nicht gefunden
>
> ... er findet /usr/include/mysql/mysql++/connection.h nicht.
>
> Danny hat in seinem letzten commit ein paar Pfade geändert. (Danny?)
>
> Setze mal bitte folgende Befehle ab und versuche es dann nochmal:
>
> cd /usr/include/mysql
> ln -s /usr/include/mysql++ mysql++

Das funktioniert leider nicht.
der make bleibt jetzt bei:
/usr/include/mysql++/common.h:131:28: fatal error: mysql_version.h: 
Datei oder Verzeichnis nicht gefunden
hängen.

von Karl M. W. (charlie-w)


Lesenswert?

Helmut Jato(Helmbrot) schrieb:
> Das funktioniert leider nicht.

sorry! :-/

Aber Danny hat's ja gefixt. :-)

von Denis L. (denis_l)


Lesenswert?

Warum ist in der aktuellen Collector Build kein SQL Support mehr 
enthalten.
Wenn ich die Hilde des COllectors aufrufe wird auch nut noch die mqtt 
Option aufgelisteet, aber die --db-path Option gibt es irgend wie nicht 
mehr warum.

Make benutzt auch nicht mehr die Database files.

Gruss Denis

: Bearbeitet durch User
von Danny B. (maniac103)


Lesenswert?

Denis L. schrieb:
> Warum ist in der aktuellen Collector Build kein SQL Support mehr
> enthalten.
> Wenn ich die Hilde des COllectors aufrufe wird auch nut noch die mqtt
> Option aufgelisteet, aber die --db-path Option gibt es irgend wie nicht
> mehr warum.
>
> Make benutzt auch nicht mehr die Database files.

Weil es jetzt optional ist - siehe Makefile.

von Denis L. (denis_l)


Lesenswert?

Danny B. schrieb:
> Denis L. schrieb:
>> Warum ist in der aktuellen Collector Build kein SQL Support mehr
>> enthalten.
>> Wenn ich die Hilde des COllectors aufrufe wird auch nut noch die mqtt
>> Option aufgelisteet, aber die --db-path Option gibt es irgend wie nicht
>> mehr warum.
>>
>> Make benutzt auch nicht mehr die Database files.
>
> Weil es jetzt optional ist - siehe Makefile.

Wie include ich das jetzt ??????

von Danny B. (maniac103)


Lesenswert?

Denis L. schrieb:
> Danny B. schrieb:
>> Denis L. schrieb:
>>> Warum ist in der aktuellen Collector Build kein SQL Support mehr
>>> enthalten.
>>> Wenn ich die Hilde des COllectors aufrufe wird auch nut noch die mqtt
>>> Option aufgelisteet, aber die --db-path Option gibt es irgend wie nicht
>>> mehr warum.
>>>
>>> Make benutzt auch nicht mehr die Database files.
>>
>> Weil es jetzt optional ist - siehe Makefile.
>
> Wie include ich das jetzt ??????

Steht doch im Makefile drin - einfach die Raute am Anfang der 
entsprechenden 3 Zeilen entfernen.

von Denis L. (denis_l)


Lesenswert?

Danny B. schrieb:
> Denis L. schrieb:
>> Danny B. schrieb:
>>> Denis L. schrieb:
>>>> Warum ist in der aktuellen Collector Build kein SQL Support mehr
>>>> enthalten.
>>>> Wenn ich die Hilde des COllectors aufrufe wird auch nut noch die mqtt
>>>> Option aufgelisteet, aber die --db-path Option gibt es irgend wie nicht
>>>> mehr warum.
>>>>
>>>> Make benutzt auch nicht mehr die Database files.
>>>
>>> Weil es jetzt optional ist - siehe Makefile.
>>
>> Wie include ich das jetzt ??????
>
> Steht doch im Makefile drin - einfach die Raute am Anfang der
> entsprechenden 3 Zeilen entfernen.

Ok das geht bekomme aber nach ein paar Sekunden die Meldung:
Exception: boost::bad_get: failed value get using boost::get
was ist das ???

Danke Danny im vorraus

von Danny B. (maniac103)


Lesenswert?

Ist das alles oder steht da noch mehr?

von Denis L. (denis_l)


Lesenswert?

Danny B. schrieb:
> Ist das alles oder steht da noch mehr?


MESSAGE[13.03.2016 19:48:15]: source 0x10, dest 0x00, type 0x3e, offset 
0, data:
 0x04 0x02 0x2e 0x00 0xed 0x3d 0x3c 0x1f 0x27 0x2e 0x00 0x00 0x64 0x11 
0x21
DATA: HK1-Ausschaltoptimierung = AUS
DATA: HK1-Einschaltoptimierung = AUS
DATA: HK1-WW-Vorrang = AUS
DATA: HK1-Estrichtrocknung = AUS
DATA: HK1-Frostschutzbetrieb = AUS
DATA: HK1-Sommerbetrieb = AUS
DATA: HK1-Tagbetrieb = AN
DATA: HK1-Betriebsart = immer Tagbetrieb
Exception: boost::bad_get: failed value get using boost::get


immer wenn er den HK1 abfrägt genau an der stelle ist eine gb132 mit 
rc30

alle abfragedaten des hk1 sind irgendwie falsch haben also nix mit den 
Parametern ds kessel zu tun

: Bearbeitet durch User
von Grünbacher (Gast)


Lesenswert?

Hallo,
ich muss nochmal eure Hilfe in Anspruch nehmen,
ich bekomme mein NetIO nicht zum laufen.

Ich habe jetzt die zweite Platine aufgebaut und bekomme immer noch

Bytes total:1620555
Bytes good:7773
Bytes dropped:0
Packets good:1240
Packets bad:69553
Packets 1byte:6988 0
Packets ack:0 nack:0
Overflow:103418
Max fill:7

Ich habe ein GB162 mit der RC300 EMS Plus Steuerung.
Ich habe mal ein Oszi angeschlossen, und würde sagen das Signal sieht 
gut am Ausgang des OP's.

Kann es sein, das es einfach an dem EMS+ Protokoll liegt, das ich gar 
kein Hardware Problem habe?

Vielen dank schon mal im vorraus.

Sven

von Torsten G. (tuskegee)


Lesenswert?

Grünbacher schrieb:
>
> Ich habe ein GB162 mit der RC300 EMS Plus Steuerung.
> Ich habe mal ein Oszi angeschlossen, und würde sagen das Signal sieht
> gut am Ausgang des OP's.
>
> Kann es sein, das es einfach an dem EMS+ Protokoll liegt, das ich gar
> kein Hardware Problem habe?
>

Hallo Sven,

es liegt definitiv nicht daran.
Ich habe eine ähnliche Konfiguration und bei mir funktioniert das Netio 
Gateway.
Allerdings habe ich es nicht hingekriegt das mit einem selbst 
kompilierten Hex File zum Laufen zu bringen.

Grüße, Torsten

von Danny B. (maniac103)


Lesenswert?

Denis L. schrieb:
> Danny B. schrieb:
>> Ist das alles oder steht da noch mehr?
> DATA: HK1-Betriebsart = immer Tagbetrieb
> Exception: boost::bad_get: failed value get using boost::get

Fixed, sorry. Man merkt glaube ich, dass ich das DB-Interface selber 
nicht mehr verwende :-/

> alle abfragedaten des hk1 sind irgendwie falsch haben also nix mit den
> Parametern ds kessel zu tun

Wie meinst du das?

von Grünbacher (Gast)


Lesenswert?

@Torsten

Wie hat sich das bei dir geäusert mit dem kompilieren,
lief der AVR gar nicht oder hattest du ähnliche Fehler?

von Grünbacher (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe hier mal ein paar
OSZI Bilder vom Ausgang der OP's.

Wenn die Baudrate mit 9600 Baud stimmt,
dann ergibt sich eine Bitbreite von etwas mehr als 100µs,
wo ich eigentlich sagen würde,
das es stimmt.

Aber warum habe ich dann die ganzen Fehler?

von Torsten G. (tuskegee)


Lesenswert?

Grünbacher schrieb:

> @Torsten
>
> Wie hat sich das bei dir geäusert mit dem kompilieren,
> lief der AVR gar nicht oder hattest du ähnliche Fehler?

Daten hatte ich nur mit dem Hex File aus dem Wiki

Grüße, Torsten

von Helmut Jato (Gast)


Lesenswert?

Karl M. W. schrieb:
> Helmut Jato(Helmbrot) schrieb:
>> Das funktioniert leider nicht.
>
> sorry! :-/
>
> Aber Danny hat's ja gefixt. :-)
#####################

Ich habe den Fix eingebaut, der make funktioniert. In meiner Ubuntu 
Virtual Box funktioniert der ems-collector dienst auch, auf meinem 
Zielrechner (xubunto) lässt sich der Dienst nicht starten.
helmut@helmut-SCENIC-L:/etc/init.d$ sudo service ems-collector start
 * Starting EMS collector daemon collectord 
Usage: /usr/local/sbin/collectord [options] <target>

General options:
  -h [ --help ]                Show this help message
  -R [ --rc-type ] arg         Type of used room controller (rc30 or 
rc35)
  -r [ --ratelimit ] arg (=60) Rate limit (in s) for writing numeric 
sensor
                               values into DB
...
Hat Jemand eine Idee??

von Danny B. (maniac103)


Lesenswert?

Was ist denn der Inhalt von /etc/default/ems-collector? Irgendwo wird 
irgendeine Option nicht passen ;)

von Denis L. (denis_l)


Lesenswert?

Danny B. schrieb:
> Denis L. schrieb:
>> Danny B. schrieb:
>>> Ist das alles oder steht da noch mehr?
>> DATA: HK1-Betriebsart = immer Tagbetrieb
>> Exception: boost::bad_get: failed value get using boost::get
>
> Fixed, sorry. Man merkt glaube ich, dass ich das DB-Interface selber
> nicht mehr verwende :-/
>
>> alle abfragedaten des hk1 sind irgendwie falsch haben also nix mit den
>> Parametern ds kessel zu tun
>
> Wie meinst du das?

Der Modus Betriebsart Automatik wird in Moosy´s Webfont immer in manuel 
angezeigt grade letztes git von Dir gezogen und getestet. das war vorher 
nicht. hab auch noch ein unhandled data message 0x08 type 0x07

von Danny B. (maniac103)


Lesenswert?

Denis L. schrieb:
> Danny B. schrieb:
>> Denis L. schrieb:
>>> Danny B. schrieb:
>>>> Ist das alles oder steht da noch mehr?
>>> DATA: HK1-Betriebsart = immer Tagbetrieb
>>> Exception: boost::bad_get: failed value get using boost::get
>>
>> Fixed, sorry. Man merkt glaube ich, dass ich das DB-Interface selber
>> nicht mehr verwende :-/
>>
>>> alle abfragedaten des hk1 sind irgendwie falsch haben also nix mit den
>>> Parametern ds kessel zu tun
>>
>> Wie meinst du das?
>
> Der Modus Betriebsart Automatik wird in Moosy´s Webfont immer in manuel
> angezeigt grade letztes git von Dir gezogen und getestet. das war vorher
> nicht.

Meine letzten Collector-Änderungen brauchen Änderungen im Frontend. Da 
Mossy MIA ist, habe ich diese Änderungen in ingof's Form eingepflegt, 
d.h. du solltest dieses Repo verwenden.

> hab auch noch ein unhandled data message 0x08 type 0x07

Wenn du mir sagst, was da drin steht, kann ich auch Handling einbauen ;)
Im Ernst: der Inhalt dieses Telegramms ist auch dem Wiki unbekannt, d.h. 
du kannst das einfach ignorieren.

von Grünbacher (Gast)


Lesenswert?

Hallo,
wollte mich nur nochmal kurz melden,
bei mir geht es mittlerweile.

Ich habe vergessen die Fuses zu programmieren(ICH IDIOT !!!)

Danke für die Hilfe.

Sven

von Helmut Jato(Helmbrot) (Gast)


Lesenswert?

Danny B. schrieb:
> Was ist denn der Inhalt von /etc/default/ems-collector? Irgendwo
> wird
> irgendeine Option nicht passen ;)

Ja, richtig ich hatte einen Schreibfehler in der ems-collector.conf. Ich 
habe jetzt noch das Problem, dass keine Werte in die Datenbank kommen. 
Dazu habe ich noch ein paar Fragen:
1. muss in der ems-collector.conf der db-path eingegeben werde?
2. wie wird der der db-path beim Starten von collectord als Argument 
übergeben? Z.B um zu debuggen?
Ich meine: collectord db-path:localhost:3306 -u ems -p 
*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 -f  tcp:192.168.178.100:7950

von Danny B. (maniac103)


Lesenswert?

Helmut Jato(Helmbrot) schrieb:
> Ich habe jetzt noch das Problem, dass keine Werte in die Datenbank kommen.

Falls du den Collector in den letzten Tagen ausgecheckt/aktualisiert 
hast: Hast du die DB-Unterstützung im Makefile angemacht?

> Dazu habe ich noch ein paar Fragen:
> 1. muss in der ems-collector.conf der db-path eingegeben werde?

Nein. Standardmäßig wird der lokale MySQL-Socket verwendet. Man muss 
diesen Parameter eigentlich nur dann angeben, wenn der MySQL-Server auf 
einem anderen Rechner als der Collector läuft.

> 2. wie wird der der db-path beim Starten von collectord als Argument
> übergeben? Z.B um zu debuggen?
> Ich meine: collectord db-path:localhost:3306 -u ems -p
> *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 -f  tcp:192.168.178.100:7950

collectord --db-path localhost:3306 ...

von Helmut Jato(Helmbrot) (Gast)


Angehängte Dateien:

Lesenswert?

Danny B. schrieb:
> Helmut Jato(Helmbrot) schrieb:
>> Ich habe jetzt noch das Problem, dass keine Werte in die Datenbank kommen.
>
> Falls du den Collector in den letzten Tagen ausgecheckt/aktualisiert
> hast: Hast du die DB-Unterstützung im Makefile angemacht?

Ja hab ich. Ich habe nochmal laut dem Wiki ab dem make alles 
durchexerziert.  Dem MySql Benutzer habe ich gelöscht und nochmal 
angelegt.
Der ems-collector Dienst läuft, ich sehe im http://localhost/status.php 
keine neuen Daten, nur die Voreinstellung.  Die Telegramme sehen 
eigentlich richtig aus? Die Datenbank bleibt leer, ich benutze das tool 
MySql Workbench.

von Danny B. (maniac103)


Lesenswert?

Helmut Jato(Helmbrot) schrieb:
> Der ems-collector Dienst läuft, ich sehe im http://localhost/status.php
> keine neuen Daten, nur die Voreinstellung.  Die Telegramme sehen
> eigentlich richtig aus? Die Datenbank bleibt leer, ich benutze das tool
> MySql Workbench.

Nein, die Telegramme sehen komplett kaputt aus. Du hast nicht zufällig 
ein EMS Plus-System, oder?

: Bearbeitet durch User
von Helmut Jato(Helmbrot) (Gast)


Lesenswert?

Danny B. schrieb:
> Helmut Jato(Helmbrot) schrieb:
>> Der ems-collector Dienst läuft, ich sehe im http://localhost/status.php
>> keine neuen Daten, nur die Voreinstellung.  Die Telegramme sehen
>> eigentlich richtig aus? Die Datenbank bleibt leer, ich benutze das tool
>> MySql Workbench.
>
> Nein, die Telegramme sehen komplett kaputt aus. Du hast nicht zufällig
> ein EMS Plus-System, oder?

Nein ich hab was älteres, einen GB125 mit RC35.
Na dann muss ich mir nochmal den Adapter und den NET-IO vornehmen. Ich 
habe bei den  Net-IO Adapter für den C5 Koppelkondensator statt den 10 
uF Tonfrequenz Kondensator einen normalen ELKO genommen, kann das daran 
liegen?

von Niffko _. (niffko)


Lesenswert?

Helmut Jato(Helmbrot) schrieb:
> [...] einen GB125 mit RC35.

oha ... unerforschtes terrain.

was wir hier machen, basiert auf einem busmaster UBA3(feuerungsautomat).

du hast einen ölkessel, der mit einer kombo mastercontroller MC10 + 
feuerungsautomat SAFe arbeitet.

dass die telegramme, mit ausnahme derer vom RC35, nicht kompatibel sind, 
halte ich für sehr wahrscheinlich.


//niffko

von Juergen O. (juergen_o)


Lesenswert?

> oha ... unerforschtes terrain.
>

Huch... was verstehe ich jetzt nicht?
Habe hier
Buderus Logano plus GB125-18
• RC35 v1.11
• Logamatic MC10 v2.07
• SAFe v4.28

Habe zwar den collectod noch nicht implementiert, aber die Telegramme, 
die bisher mit meinem ESP-EMS Interface empfange, unterscheiden sich 
nicht von denen, die im WIKI angegeben sind.

von Niffko _. (niffko)


Lesenswert?

hätte ich jetzt echt nicht gedacht ... um so besser.

was mich mal interessieren würde: haben MC10 und SAFe jeweils eigene 
busadressen? wenn ja, von wem kommen die monitor-telegramme(0x18, 0x19)? 
und wer ist der master, MC10 oder SAFe? kannst du das erkennen, juergen?

//niffko

von Niffko _. (niffko)


Lesenswert?

gerade mal im ESP-thread geschaut...

den fast-monitor(0x18) gibts bei juergen einmal mit offset 0 und einmal 
mit offset 1B. UBA3 sendet nur einmal mit offset 0.

//niffko

von Juergen O. (juergen_o)


Lesenswert?

Grundsätzlich scheint in dieser Konstellation die Blocklänge auf 32 Byte 
begrenzt zu sein und wird deshalb segmentiert übertragen.
UBAErrorMessage1 kommt beispielsweise bei mir in 4 Blocks an:
1
08 10 10 00 36 4C...
2
08 10 10 1A 01 FF...
3
08 10 10 35 04 13...
4
08 10 10 50 35 00...

von Helmut J. (helmbrot)


Lesenswert?

Niffko _. schrieb:
> Helmut Jato(Helmbrot) schrieb:
>> [...] einen GB125 mit RC35.
>
> oha ... unerforschtes terrain.
>
> was wir hier machen, basiert auf einem busmaster UBA3(feuerungsautomat).
>
> du hast einen ölkessel, der mit einer kombo mastercontroller MC10 +
> feuerungsautomat SAFe arbeitet.
>
> dass die telegramme, mit ausnahme derer vom RC35, nicht kompatibel sind,
> halte ich für sehr wahrscheinlich.
>
> //niffko

Ich bekomme jetzt auf jedenfall Daten, die Fuses beim Atmega waren nicht 
richtig gesetzt. Ob Telegramme inkompatibel sind muss ich noch 
überprüfen.

von Grünbacher (Gast)


Lesenswert?

Hallo,

da ja bei mir alles läuft,
bin ich ein wenig dran die Solaranlage zu implementieren.

Ich habe GB162 + RC300 + SM200.

Hat schon mal jemand angefangen damit?

Hier mal kurz meine Erkenntnisse:
MESSAGE[21.03.2016 11:51:20]: source 0x30, dest 0x00, type 0xff, offset 
0, data: 0x02 0x62 0x01 0x75 0x01 0x28 0x80 0x00 0x80 0x00 0x80 0x00 
0x80 0x00 0x80 0x00 0x80 0x00 0x02 0x2f 0x80 0x00 0x80 0x00 0x80 0x00
MESSAGE[21.03.2016 11:51:20]: source 0x30, dest 0x00, type 0xff, offset 
24, data: 0x02 0x62 0x80 0x00

Das sind die Temperatursensoren
    TS1 0175h = 37,3°
    TS2 0128h = 29,6°
    TS5 022fh = 55,9°
den Rest weis ich hier noch nicht, ich nehme aber an, das es alles 
Teperatursensoren sind, die ich nicht angeschlossen habe, wobei das 
SM200 nur 8 Sensoreingänge hat, passt also nicht ganz.

MESSAGE[21.03.2016 12:05:00]: source 0x30, dest 0x00, type 0xff, offset 
0, data: 0x02 0x8e 0x00 0x00 0x61 0xd2 0x00 0x00 0x13 0x40 0x00 0x00 
0x53 0x20

Die letzten beiden Bytes 0x5320 ist der angezeigte Solarertrag im 
Display (
2128,0 KWh)

Bei mir ist noch ein 3 Wege Ventil sowie die Solarpumpe angeschlossen,
die habe ich aber noch nicht gefunden im Protokoll.

Falls ich noch was finde, melde ich mich wieder.

Evtl. hat jnoch jemand eine SM200 zum Erfahrungsaustausch.

Gruß
Sven

von Matthias F. (pullmoll)


Lesenswert?

Grünbacher schrieb:
> Ich habe GB162 + RC300 + SM200.
>
> Hat schon mal jemand angefangen damit?

Ich bin mit GB172 + RC300 ausgestattet und würde das auch gerne 
implementieren, um bspw. Zirkulation u.ä. manuell zu triggern.

Allerdings sind die Telegramme noch etwas schwer zu verstehen, aber 
vielleicht können wir uns trotzdem austauschen.

von Danny B. (maniac103)


Lesenswert?

Grünbacher schrieb:
> Hier mal kurz meine Erkenntnisse:
> MESSAGE[21.03.2016 11:51:20]: source 0x30, dest 0x00, type 0xff, offset
> 0, data: 0x02 0x62 0x01 0x75 0x01 0x28 0x80 0x00 0x80 0x00 0x80 0x00
> 0x80 0x00 0x80 0x00 0x80 0x00 0x02 0x2f 0x80 0x00 0x80 0x00 0x80 0x00
> MESSAGE[21.03.2016 11:51:20]: source 0x30, dest 0x00, type 0xff, offset
> 24, data: 0x02 0x62 0x80 0x00

Die 0xff-Telegramme sind EMS plus-Telegramme mit 2 Byte langen 
Typnummern, die funktionieren mit dem Collector im momentanen Zustand 
nicht. Ich hatte damit mal angefangen 
(https://github.com/maniac103/ems-collector/commits/emsplus), kann das 
aber nicht wirklich sinnvoll fortführen, da ich das nicht testen kann. 
Mit dem o.g. Branch müsste das Parsen der Telegrammnummern 
funktionieren, allerdings müssen sämtliche EMS plus-Telegramme noch 
entschlüsselt werden.

von Sven G. (gruenbacher)


Lesenswert?

@Matthias Feistel
ich wollte erstmal nur die Daten Sammeln und auswerten.
Ich habe keine Ambition die Heizungssteuerung zu ersetzten, dh.
ich möchte keine Kommandos an die Heizung senden.

Wenn dir das reicht, können wir uns gerne zusammen an die Sache dran 
machen.

@Danny Baumann
Ich habe mir dein Code gerade mal angeschaut und mit dem aktuellen aus 
dem Master Zweig verglichen, ich glaube ich werde es 'strait forward' in 
die einzelnen Kommandos einbauen die ich habe/brauche.

Kurze Frage Danny,
    bool isRead = m_data[1] & 0x80;
    bool isPlus = m_data[2] >= 0xf0 && m_data.size() >= (isRead ? 7 : 
6);

woher hast du die Erkenntnis das im ersten Byte &0x80 ein Read Kommando 
ist?

Noch eine kurze Geschmacksfrage,
soll ich die EMS+ Kommandos in jeder Funktion unterscheiden,
oder so wie es Danny schon angefangen hat, im Konstruktor 
EmsMessage::EmsMessage die Unterscheidung fällen und für alle EMS+ 
Kommandos neue Funktionen erstellen (zB. 
parseSolarMonitorMessagePlus())?

Falls es jemand später nochmal schön schreiben und einchecken möchte 
gebe ich natürlich meine Sourcen weiter, alles andere wäre assozial.

mfg.
Sven

: Bearbeitet durch User
von Danny B. (maniac103)


Lesenswert?

Sven G. schrieb:
> Kurze Frage Danny,
>     bool isRead = m_data[1] & 0x80;
>     bool isPlus = m_data[2] >= 0xf0 && m_data.size() >= (isRead ? 7 :
> 6);
>
> woher hast du die Erkenntnis das im ersten Byte &0x80 ein Read Kommando
> ist?

Das ist allgemein gewonnene Erkenntnis :)
http://emswiki.thefischer.net/doku.php?id=wiki:ems:ems-telegramme#anfragen

> Noch eine kurze Geschmacksfrage,
> soll ich die EMS+ Kommandos in jeder Funktion unterscheiden,
> oder so wie es Danny schon angefangen hat, im Konstruktor
> EmsMessage::EmsMessage die Unterscheidung fällen und für alle EMS+
> Kommandos neue Funktionen erstellen (zB.
> parseSolarMonitorMessagePlus())?

Mir wäre es lieb, wenn du die angefangene Struktur beibehältst, d.h. 
eine Parsing-Funktion pro Telegrammtyp, zwischen denen in dem Switch in 
EmsMessage::handle() ausgewählt wird (dem Konstruktor ist das egal). 
Falls sich später rausstellen sollte, dass EMS-Plus- und EMS-Telegramme 
praktisch gleich sind, können wir das immer noch ändern, aber ich glaube 
da nicht so richtig dran.

von Sven G. (gruenbacher)


Lesenswert?

Hallo Danny,

das mit dem Konstruktor war falsch von mir.
Werde es in der handle() Routine unterscheiden z.B.:
.........
    case EmsProto::addressSM10:
  /* SM10 message */
        if(isPlus){
           /* handle EMS Plus messages */
           ...........
        } else {
     switch (m_type){
        case 0x97: parseSolarMonitorMessage(); handled = true; break;
           }
        }
.......

Können wir evtl. auch mal anders in Kontakt treten.
Alles hier so zu posten macht den Thread unübersichtlich und zieht ihn 
in die Länge.

Gruß
Sven

von Helmut Jato(Helmbrot) (Gast)


Lesenswert?

Nachdem ich jetzt dem laut dem Wiki den ems-collector mit den Web zum 
laufen gebracht habe, möchte ich das neue Frontend zum laufen bringen. 
Ich scheitere im Moment an der Installations Anleitung "EMS-Tools
(c) 2014 by Michael Moosbauer" punkt:
5. Start the x  emsclient in the CLI-Subdir.
Ich bekomme folgende Fehlermeldung:

helmut@helmut-VirtualBox:~/ems-collector/ems-tools/cli$ bash emsclient
emsclient: Zeile 2: ?php: Datei oder Verzeichnis nicht gefunden
emsclient: Zeile 3: Syntaxfehler beim unerwarteten Wort 
»"emsincludes/emsqry.inc"«
emsclient: Zeile 3: `require("emsincludes/emsqry.inc");'

PHP ist installiert, der Pfad ist auch richtig.


P.s.: bin leider kein Linux Kenner, ich habe vermutlich wieder einmal 
was nicht richtig verstanden.

von IngoF (Gast)


Lesenswert?

Helmut Jato(Helmbrot) schrieb:
> emsclient: Zeile 2: ?php: Datei oder Verzeichnis nicht gefunden

kann es sein dass in Zeile 2 nur ?PHP und nicht <?PHP steht?

Hats Du das Original GIT oder das von mir geforkte und von Danny 
weiterentwickelte genommen?

von IngoF (Gast)


Lesenswert?

Helmut Jato(Helmbrot) schrieb:
> helmut@helmut-VirtualBox:~/ems-collector/ems-tools/cli$

Das hört sich nach dem ems-collector an.
Müsste es nicht das Frontend (von Mossys Frontend geforkt) sein:
https://github.com/ingof/ems-php-webinterface

von Helmut Jato(Helmbrot) (Gast)


Lesenswert?

IngoF schrieb:
> Helmut Jato(Helmbrot) schrieb:
>> helmut@helmut-VirtualBox:~/ems-collector/ems-tools/cli$
>
> Das hört sich nach dem ems-collector an.
> Müsste es nicht das Frontend (von Mossys Frontend geforkt) sein:
> https://github.com/ingof/ems-php-webinterface

Hallo IngoF, ich verwende die aktuellen ems-tools aus dem Wiki.
Zu "Start the x  emsclient in the CLI-Subdir":
Was bedeutet das x ? emsclient ist doch ein script und wird einfach 
durch < emsclient <return> gestartet. Wenn ich das mache kommt:
helmut@helmut-VirtualBox:~/ems-collector/ems-tools/cli$ emsclient
emsclient: Befehl nicht gefunden.

von IngoF (Gast)


Lesenswert?

Helmut Jato(Helmbrot) schrieb:
> IngoF schrieb:

> durch < emsclient <return> gestartet. Wenn ich das mache kommt:
> helmut@helmut-VirtualBox:~/ems-collector/ems-tools/cli$ emsclient
> emsclient: Befehl nicht gefunden.

das schon versucht:
./emsclient

vermutlich sucht er sonst  emsclient im Pfad und nicht im lokalen 
Verzeichnis.

Keine Ahnung was das x bedeuten soll..

von Helmut J. (helmbrot)


Angehängte Dateien:

Lesenswert?

IngoF schrieb:
> Helmut Jato(Helmbrot) schrieb:
>> IngoF schrieb:
>
>> durch < emsclient <return> gestartet. Wenn ich das mache kommt:
>> helmut@helmut-VirtualBox:~/ems-collector/ems-tools/cli$ emsclient
>> emsclient: Befehl nicht gefunden.
>
> das schon versucht:
> ./emsclient
>
> vermutlich sucht er sonst  emsclient im Pfad und nicht im lokalen
> Verzeichnis.
>
> Keine Ahnung was das x bedeuten soll..

Ja das war ein guter Tipp, danke. Der emsclient läuft jetzt wie in der 
Installationsanleitung beschrieben.
Mit dem ems-php-webinterface habe ich jetzt noch ein Problem, siehe 
Anlage.
Das muss irgendwas mit der Funktion menu() in top.php zu tun 
haben,eventuell rechte?

von Jens (Gast)


Lesenswert?

Guten Morgen :)

Nachdem ich den Thread jetzt mehrfach gelesen habe, blicke ich leider 
immer noch nicht zu 100% durch, was ich jetzt benötige um meine 
Adapterplatine von Ingo (1. Version ohne Ethernet) an einen Raspi zu 
bekommen.
Brauche ich dafür einen Umbau meiner Platine (auf Ethernet) oder reicht 
der Originalzustand ?
Und dann benötige ich noch zusätzlich den NetIO oder benötige ich den 
dann nicht mehr, sondern nur einen Raspi?

Wäre toll jemand mir das jemand für einen DAU erklären könnte :D


Gruß
Jens

von Ingo F. (ingof)


Lesenswert?

Eigentlich nur ein ENC28J60 Ethernet-Platine und ein paar Kabel.
Und neue Firmware.

Notfalls muss noch der Spannungsregler ausgetauscht werden.
Werde mir noch mal das Layout ansehen und eine kleine Anleitung 
"basteln"..

von Jens (Gast)


Lesenswert?

Na das klingt doch fast zu einfach :)

So etwas geht?
ENC28J60 Ethernet LAN Network Module For Arduino
Chip board ENC28J60-I/SO<
The board 25MHZ crystal
The network interface board HR911105A
3.3 V power supply pin

3.3 V power supply pin bedeutet dann entweder 5v oder 3,3V oder bedeutet 
es NUR 3,3V ?

Unter welchen Umständen muss denn der Spannungsregler ausgetauscht 
werden ?

Gruß
Jens

von F. F. (pic18f)


Lesenswert?

Der ENC28J60 darf nur mit einer Versorgungsspannung von 3,3V betrieben 
werden. Die Eingänge sind 5V tolerant. Man kann den ENC28J60 deshalb 
direkt am 5V Datenbus betreiben.
Meinst Du die Platine vom Ingo; EMS Gateway? Da habe ich die Spannung 
nach dem 5V Spannungsregler abgegriffen. Allerdings habe ich die 
Versorgungsspannung vom Netzteil vermindert, damit die Verlustleistung 
geringer wird und der Spannungsregler nicht zu heiß wird. Der ENC28J60 
kann, so weit ich weiß, bis 200mA Strom ziehen.

@Ingo, ich habe noch nicht herausgefunden wie ich die Daten in die 
Datenbank bekomme, da ich kein Raspi habe. Ist es möglich mit deiner 
Platine direkt die Daten in die Datenbank zu schreiben?

von Ingo F. (ingof)


Lesenswert?

Jens schrieb:
> Unter welchen Umständen muss denn der Spannungsregler ausgetauscht
> werden

Der Spannungsregler der in der Platine verbaut wurde kann nur 100mA 
Strom liefern.

Also wenn der Strom für die Ethernet-Platine hinter diesem Regler 
entnommen wird muss der alte Spannungsregler ausgetauscht werden. Es 
gibt allerdings keinen Pinkompatiblen Spannungsregler.

Durch Ausbau von Gleichrichter und Spannungsregler und schließen von 
Lötbrücken kann die Platine auch mit 5V aus dem Netzteil versorgt 
werden. Das Schaltnetzteil muss dann auf 5Volt umgestellt werden.
Habe ich noch nicht probiert. Sollte aber gehen.

Dann eine Ethernetplatine mit 3,3 Volt SPannungsregler an die 5Volt 
anbinden.

Oder aber die Spannung für die 3,3 Volt von der Eingangsspannung nehmen.
Allerdings sollte das Schaltnetzteil auf 9 Volt stehen bleiben. Beim 
herunterdrehen der Eingangsspannung kommen hinter dem 5-Volt 
Spannungsregler keine 5 Volt mehr heraus.

F. F. schrieb:
> Der ENC28J60 darf nur mit einer Versorgungsspannung von 3,3V betrieben
> werden. Die Eingänge sind 5V tolerant.

Das stimmt so. Allerdings gibt es auch wenige Platinen die umschaltbar 
zwischen 5 und 3,3 Volt sind. Dort ist dann noch ein 3,3Volt-Regler auf 
der Platine.

Ich kann nur den von ElekFreak empfehlen weil ich ihn schon mehrfach 
verwendet habe:
http://www.elecfreaks.com/estore/enc28j60-mini-ethernet-module-3-3v-5v-bk-enc28m.html

Ist nur lange auf dem Versandweg...

Es gehen auch andere mit 5Volt. Oder eben 3,3 Volt und Du musst Dich um 
den Spannungsregler selber kümmern.

F. F. schrieb:
> @Ingo, ich habe noch nicht herausgefunden wie ich die Daten in die
> Datenbank bekomme, da ich kein Raspi habe. Ist es möglich mit deiner
> Platine direkt die Daten in die Datenbank zu schreiben?

Nein, bisher nicht.

Möglich wäre es aber bestimmt mit der richtigen Programmierung.

Bisher geht nur der Weg über ein Programm auf einer Linux-maschine 
(RASPI, Diskstation (über Docker), PC/Notebook, ....)

Inzwischen soll das eventuell auch auf Windows gehen.

von Jens (Gast)


Lesenswert?

Hallo F.F., danke für die Antwort ... ja, Ich meine die EMS Gateway 
Platine von Ingo.
Dann warte ich mal auf eine Anleitung von Ingo, da ich weder weiß wo ich 
was abnehmen müsste, noch auf was ich sonst zu achten habe ;)

von Jens (Gast)


Lesenswert?

Hmm .. jetzt habe ich doch zu lange für die Antwort gebraucht !? Könnte 
schwören eben war die von Ingo noch nicht da.

@Ingo: Würdest du eine detaillierte Anleitung zur Verfügung stellen 
incl. Liste der benötigten Bauteile ? liebguck
Ich möchte nämlich von der USB Schnittstelle und vom Windows Rechner weg 
und auf einen Raspi umziehen.

von ingof (Gast)


Lesenswert?

Jens schrieb:
> @Ingo: Würdest du eine detaillierte Anleitung zur Verfügung stellen
> incl. Liste der benötigten Bauteile ? liebguck
> Ich möchte nämlich von der USB Schnittstelle und vom Windows Rechner weg
> und auf einen Raspi umziehen
Gene... Muss nur die alten Eagle-Dateien wiederfinden.... Kann noch 
etwas dauern...

von Ingo F. (ingof)


Lesenswert?

Jens schrieb:
> Dann warte ich mal auf eine Anleitung von Ingo,

So, die Anleitung besteht aus schönen bunten Bildern:
https://emswiki.thefischer.net/doku.php?id=wiki:ems:emsgwumbau#ethernet_nachruestung

Bei V2.1 muss eigentlich nur ein 1:1 Verbindungskabel genommen werden.
Allerdings sind Kabel 6(blau) und 7(violett) vertauscht.

Bei der Platine V2.0 muss man sich an mehreren verschiedenen 
Steckeverbindern "bedienen".
Dabei muss reicht es nur einen gleichfarbigen Puntk auszusuchen.
Je nachdem welche noch frei sind oder welche gerade am besten passen.

Und der Spannungsregler von der Platine muss ausgelötet werden und eine 
TO220-Version "eingebaut" werden. Habe jeweils alle möglichen Punkte 
gekennzeichnet.

Dabei auf jeden Fall auf Stabilität und und Kurzschlusssicherheit 
achten.
Denke es wäre am einfachsten die Beine zurechtzubiegen und auf der 
Platine anzulöten. Und dann die Beine mit Heisskleber gegen Sichern.

Das Sichern mit Heisskleber ist auch bei den Kabeln zu empfehlen wenn 
die direkt in die Lötpunkte angelötet werden.

Gruß
Ingo

: Bearbeitet durch User
von Jens (Gast)


Lesenswert?

Hallo Ingo,vielen Dank dafür.

Leider muss ich noch mal nachfragen ... der Spannungsregler ist der IC7 
und da einfach den alten raus löten?

Gruß
Jens

von Ingof (Gast)


Lesenswert?

Jens schrieb:
> der Spannungsregler ist der IC7 und da einfach den alten raus löten?
>
> Gruß

Ja,  in dem neuen dafür natürlich anschließen....

von Jens (Gast)


Lesenswert?

Hallo Ingo,

werde heute anfangen die Platine umzubauen und hätte da noch ne Frage 
zur Firmware. Ich benötige ja in meinem Fall die FW für die alte Platine 
mit Eth. Support, wie komme ich daran (ist nicht im WIki hinterlegt) und 
wann muss ich die aufspielen, vor dem Umbau oder danach oder ist das 
egal ? Gibts dabei noch etwas zu beachten ?

Gruß
Jens

von Bernd G. (bernd_g)


Lesenswert?

Nur aus Neugier: habt Ihr schon mal über ein ESP8266 WLAN Modul 
nachgedacht? Das ist billig und praktisch.

Für den Datenverkehr wünsche ich mir eigentlich ein Gerät im Zentrum 
(Raspi, Syno NAS usw.), das als MQTT Message Broker von allen SmartHome 
Geräten Messages empfängt und allen erlaubt, andere Messages zu 
abonnieren. Das würde die Integration verschiedener Dinge erheblich 
vereinfachen...

Was meint Ihr?

: Bearbeitet durch User
von Juergen O. (juergen_o)


Lesenswert?

Hmm,

so (Beitrag "EMS > ESP8266-12 WLAN-Modul") in etwa?
Mit der esp-link Basis von TvE sind bereits folgende Funktionalitäten 
vorhanden: Web-Server, MQTT Client, syslog Client, telnet Interface, 
SNTP

Aber ich denke, das ist in dem zitierten Thema besser aufgehoben - ich 
will hier nicht hijacken oder das Thema verwässern...

von Bernd G. (bernd_g)


Lesenswert?

Danke und Sorry, "erst suchen - dann schreiben" habe ich diesmal 
definitiv falsch gemacht!

von ingof (Gast)


Lesenswert?

Jens schrieb:
> Ich benötige ja in meinem Fall die FW für die alte Platine
> mit Eth. Support

Ups, da gibt es noch ein Problem.
Dort ist ja ein PIC drauf der weniger Speicher hat.
Ich glaub die Firmware im Wiki wird darauf nicht laufen.

Muss mir noch mal ansehen ob die Firmware auch ein wenig eingeschränkt 
werden kann.

Das wird aber dieses Wochende nichts mehr..

Doch, für eine von den letzten drei Dateien:
http://emswiki.thefischer.net/doku.php?id=wiki:ems:firmware_download

Installation der Firmware
http://emswiki.thefischer.net/doku.php?id=wiki:ems:bootloader

von Jens (Gast)


Lesenswert?

Äh .. wie jetzt ? geht nicht oder doch? Du musst erst noch basteln oder 
ich  kann eine davon benutzen ?? verwirrt bin

von ingof (Gast)


Lesenswert?

Jens schrieb:
> Äh .. wie jetzt ? geht nicht oder doch? Du musst erst noch basteln
> oder
> ich  kann eine davon benutzen ?? verwirrt bin

Die Firmware ist damals für die größeren PIC erstellt worden.
Der alte PIC hat weniger Speicher.
Muss mir das mal genauer ansehen wieviel Speicherplatz die Firmware 
verwendet und ob das mit dem alten PIC noch passt.

Auf meinem Rechner will er gerade die Firmware nicht mehr kompilieren. 
Und heute habe ich keine Zeit dazu....

Erst mal sehen wie der Stand der Dinge ist...

von Torsten G. (regengott)


Lesenswert?

IngoF schrieb:

> Bitte mal Rückmeldung geben wenn Deine Platine erfolgreich getestet
> wurde.
>

Heureka! Die Platine funktioniert!
Hab mir zwischenzeitlich aus Frust die fertige, gebrauchte Platine von 
Frank gekauft, aber nun ist mein eigenes Platinchen fertig, der NetIO 
geflashed und auch der collectord läuft rund.

*Damit habe nun ich eine fertige Platine und einen fertig mit ethersex 
geflashten 644p abzugeben. Falls jemand Interesse hat, PM an mich.*

Über folgende Dinge bin ich beim erstellen der Software gestolpert und 
würde daher folgendes im Wiki ändern:
- beim "apt-get" /libboost1.50-all/ in libboost-all-dev ändern (auf 
den aktuellen Raspbians ist die aktuell V1.55 in diesem Meta-Package 
drin)
- die Konfiguration des Mysql-Users aus dem "Tipps"-Abschnitt direkt 
nach der (berechtigten) Kaffee Bemerkung einfügen

Grüße
Torsten G.

von Karl M. W. (charlie-w)


Lesenswert?

Torsten G. schrieb:
> Über folgende Dinge bin ich beim Erstellen der Software gestolpert und
> würde daher folgendes im Wiki ändern:
> ...

... erledigt!

Danke für den Hinweis!

von Torsten G. (regengott)


Lesenswert?

Helmut J. schrieb:
> Mit dem ems-php-webinterface habe ich jetzt noch ein Problem, siehe
> Anlage.
> Das muss irgendwas mit der Funktion menu() in top.php zu tun
> haben,eventuell rechte?

Hallo Helmut
wurde in einem frühen Post schonmal erwähnt, man muss folgende Änderung 
vornehmen:

Datei: mconfig.php, erste Zeile
<?

ändern in
<?php

Der Fix ist noch in keinem der GIT-Repositories gelandet (und ich hab 
keine Ahnung von forken und einchecken ;-) )

Grüße
T.

von ingof (Gast)


Lesenswert?

Torsten G. schrieb:
> Datei: mconfig.php, erste Zeile
> <?

Eigentlich hatte ich bei verschiedenen Dateien das schon ergänzt. Diese 
hatte ich wohl vergessen.

Ist jetzt geändert und die Github-Links am Ende sind auch angepasst.

Bei den anderen Änderungen war Karl schneller...

von ingof (Gast)


Lesenswert?

ingof schrieb:
> Auf meinem Rechner will er gerade die Firmware nicht mehr kompilieren.
> Und heute habe ich keine Zeit dazu....

Habs gerade noch mal probiert.

Die Software benötigt 2240 Byte RAM und der alte PIC hat nur 1536.
So stark kann man den RAM-Verbrauch mal nicht so einfach einschränken.

Also werden noch folgende Bauteile benötigt (Bauform in Klammern):
2x 22pF Kondensator für Quartz (0805)
1x PIC 18F4685 (TQFP-44)
1x 10 MHz-Quartz (SM49)

Habe nur mal kurz überflogen. Bei Reichelt habe ich den PIC nicht 
gefunden.
Bei HBE-Shop (farnel) sind dann für Bauteile und Versand etwa 32 Euro 
fällig.

Dann wird aber noch ein Programmiergerät für den PIC notwendig.

Könnte das wohl für Dich einbauen und programmieren.
Müsstest dann nur Hin und Rückversand bezahlen.

Entweder Bauteile selber bestellen und mitschicken oder ich würde sie 
dann für Dich bestellen

von ingof (Gast)


Lesenswert?

ingof schrieb:
> Bei HBE-Shop (farnel) sind dann für Bauteile und Versand etwa 32 Euro
> fällig.

Versand sind alleine 15 Euro....

von ingof (Gast)


Lesenswert?

ingof schrieb:
> ingof schrieb:
>> Bei HBE-Shop (farnel) sind dann für Bauteile und Versand etwa 32 Euro
>> fällig.
>
> Versand sind alleine 15 Euro....

Conrad:
1084328 - 62
155561 - 62
1279314 - 62
für 17EUR inkl Versand

von Jens (Gast)


Lesenswert?

Hallo Ingo,

vielen Dank.
Werde die Teile bestellen und Dir dann alles zuschicken.
Melde mich noch mal wenn die Teile da sind, der Pic hat leider 
Lieferzeit von 1,5 Wo

Gruß
Jens

von Torsten G. (regengott)


Lesenswert?

Hallo
nachdem nun alles läuft, soll das ganze noch einen höheren WAF bekommen 
;-)

1.) Kann man den Raspi als 5V-Spannungsquelle für den NetIO nehmen? Ich 
würde mir gerne ein Netzteil einsparen...

2.) Hat jemand seine Platine + NetIO in einem Gehäuse untergebracht? 
Welches habt ihr da genommen?

Viele Grüße,
Torsten G.

von Karl M. W. (charlie-w)


Lesenswert?

Torsten G. schrieb:

> ...
> 1.) Kann man den Raspi als 5V-Spannungsquelle für den NetIO nehmen? Ich
> würde mir gerne ein Netzteil einsparen...

NetIO (J6) und Raspi an einem Netzteil sollten kein Problem sein, wenn 
das Teil ausreichend Leistung bringt; 2A sollten genügen.

> 2.) Hat jemand seine Platine + NetIO in einem Gehäuse untergebracht?
Nö, liegt noch offen. Mein Bastelkeller ist WAF-intolerant. ;-)

Gruß
Karl M.

von Torsten G. (regengott)


Lesenswert?

Moin

bin mir nicht klar ob das bug oder feature ist:
Ich bekomme keine Raumtemperatur angezeigt. Die Variable 
"roomcurrenttemperature" wird immer als "unbekannt" angezeigt. Da ich 
eine Raumtemperatur geführte Heizung nutze und meine Bedieneinheit eine 
Wert anzeigt, vermute ich ein Problem im EMS-Collector.

Any Ideas?

@Karl: meine Konstruktion steht in Sichtrichtung vom Bügelbrett und wenn 
ich die tradierte Rollenverteilung beibehalten will, muss ein Gehäuse 
her ;-)

Grüße
Torsten G.

von Danny B. (maniac103)


Lesenswert?

Torsten G. schrieb:
> bin mir nicht klar ob das bug oder feature ist:
> Ich bekomme keine Raumtemperatur angezeigt. Die Variable
> "roomcurrenttemperature" wird immer als "unbekannt" angezeigt. Da ich
> eine Raumtemperatur geführte Heizung nutze und meine Bedieneinheit eine
> Wert anzeigt, vermute ich ein Problem im EMS-Collector.

Wo genau wird dir etwas als 'unbekannt' angezeigt?
Zum Eingrenzen von Fehlern in Collector vs. Frontend ist es immer 
hilfreich, sich mal mit Telnet auf den Daten-Port (meistens 7778) des 
Collectors zu verbinden. Fällt der gesuchte Wert dort raus, ist das 
Problem im Frontend, ansonsten im Collector.

von Torsten G. (regengott)


Lesenswert?

Hallo Danny

auf Port 7778 kommt folgende Meldung:
1
hk1 roomcurrenttemperature unavailable

(nicht "unbekannt", wie ich ursprünglich geschrieben habe)
VG
T.

von Danny B. (maniac103)


Lesenswert?

Torsten G. schrieb:
> auf Port 7778 kommt folgende Meldung:
>
>
1
hk1 roomcurrenttemperature unavailable
>
> (nicht "unbekannt", wie ich ursprünglich geschrieben habe)

Und du hast nur einen Heizkreis?
Starte den Collector mal bitte mit '-d message' und lade das Log mal 
irgendwo hoch - ich guck dann mal rein.

von Lorenz G. (lorgru)


Lesenswert?

Ein Tipp zum Gehäuse:

Im Beitrag "Re: EMS > Adapter > NetIO > Raspi" und ff. 
hatte ich meine Lösung beschrieben. Sieht gut aus und nimmt alle 
Komponenten auf. WAF ist auch OK, fast schon overkill, da im 
Technikkeller installiert und das ist eigentlich mein Hoheitsgebiet. 
Aber das Auge isst ja auch mit :-)

LG

von Torsten G. (regengott)


Lesenswert?

N'Abend
Ich bin auf der Suche nach den nächsten Käfern im WebInterface, komme 
aber nicht dahinter:

Im Webserver-Log kommen im 10-sekunden-Rhythmus folgende Fehler:
1
2016-04-19 21:10:44: (mod_fastcgi.c.2695) FastCGI-stderr: PHP Notice:  Undefined index: heater maintenancedue in /var/www/html/ems-php-webinterface/www/lemscnt.ajax on line 63
2
2016-04-19 21:10:44: (mod_fastcgi.c.2695) FastCGI-stderr: PHP Notice:  Undefined index: hk1 automode in /var/www/html/ems-php-webinterface/www/lemscnt.ajax on line 67
wenn ich die Seite "Livestatus" aufrufe.

@Danny: Ja, ich habe nur einen Heizkreis. Wg Log->PM

@Lorenz: Danke für den Hinweis - hab ich überlesen. So langsam wird der 
Thread unübersichtlich ;-)

Servus
Torsten G.

von Helmut Jato (helmbrot) (Gast)


Lesenswert?

Hallo,

Ich habe noch ein Problem mit Mosis ems-php-webinterface. Ich kann Daten 
empfangen,aber scheinbar keine Anforderungen senden. Die TX LED leuchtet 
nicht auf.
Leuchtet die TX LED auf, wenn eine Anforderungen versucht wird, oder 
wenn die Anforderung erfolgreich gelaufen ist?

Fehlermeldung in Mosis emsclient:
z.B:
ems:/> hk1 getholiday
ERRTIMEOUT
ems:/>

der req uba geht.
ems:/> req uba
heater targettemperature = 30
ww targettemperature = 10
heater currenttemperature = 70.3
...

Konfiguration: Ölkessel GB125 mit RC35 und 2 Heizkreisen

von Danny B. (maniac103)


Lesenswert?

> auf Port 7778 kommt folgende Meldung:
>
>
1
hk1 roomcurrenttemperature unavailable
>
> (nicht "unbekannt", wie ich ursprünglich geschrieben habe)

Laut deinem Log ist das auch korrekt so:
1
MESSAGE[19.04.2016 20:55:26]: source 0x10, dest 0x00, type 0x3e, offset 0, data: 0x04 0x02 0x29 0x7d 0x00 0x00 0x00 0x2d 0x3d 0x4b 0x00 0x00 0x64 0x11 0x2b

Die Raumtemperatur steht an Offset 3, und 0x7d 0x00 ist 'nicht 
verfügbar'. Warum das bei dir so ist, kann ich dir allerdings nicht 
sagen; ich vermute aber mal, dass die RC (welche?) nicht dem Heizkreis 
zugeordnet ist. Bei der RC30 steht der entsprechende Punkt in Abschnitt 
5.8.4 der Serviceanleitung, bei der RC35 ist das Abschnitt 6.4.1.

von Torsten G. (regengott)


Lesenswert?

Danny B. schrieb:
> Die Raumtemperatur steht an Offset 3, und 0x7d 0x00 ist 'nicht
> verfügbar'. Warum das bei dir so ist, kann ich dir allerdings nicht
> sagen; ich vermute aber mal, dass die RC (welche?) nicht dem Heizkreis
> zugeordnet ist. Bei der RC30 steht der entsprechende Punkt in Abschnitt
> 5.8.4 der Serviceanleitung, bei der RC35 ist das Abschnitt 6.4.1.

Das war's! Meine RC30 war dem HK1 nicht zugeordnet. Das könnte eventuell 
auch erklären, warum die Heizung bei 20,5° Solltemperatur immer noch 
gebollert hat, obwohl die Bude auf 23° geheizt war... 
roomcurrenttemperatur wird jetzt angezeigt und (oh wunder) die Heizung 
folgt jetzt auch der Raumtemperatur.

* Danke Danny! *

von Jens H. (Gast)


Lesenswert?

Hallo zusammen,

ich habe jetzt mal versucht die alte Version der EMS Platine von Ingo 
über USB (serial Port) mit einem Pi zu verbinden.
Installation nach Anleitung und scheinbar erfolgreich:
1
● ems-collector.service - LSB: EMS collector daemon
2
   Loaded: loaded (/etc/init.d/ems-collector)
3
   Active: active (running) since So 2016-05-01 17:34:47 CEST; 9min ago
4
  Process: 1463 ExecStop=/etc/init.d/ems-collector stop (code=exited, status=0/SUCCESS)
5
  Process: 1470 ExecStart=/etc/init.d/ems-collector start (code=exited, status=0/SUCCESS)
6
   CGroup: /system.slice/ems-collector.service
7
           └─1475 /usr/local/sbin/collectord --pid-file /var/run/ems-collector.pid -c /etc/ems-collector.conf serial:/dev/ttyUSB0
8
9
Mai 01 17:34:47 raspberrypi ems-collector[1470]: Starting EMS collector daemon: collectord.
10
Mai 01 17:34:47 raspberrypi systemd[1]: Started LSB: EMS collector daemon.

Die Firmware ist die aus dem Wiki (2.1 Beta 131118) und Ausgabemodus ist 
RAW (getestet mit Putty über USB direkt an der Platine).
Auf der Webseite wird allerdings nix angezeigt, außer "Bitte warten 
(10%)"
Das Rohdatenfenster bleibt auch leer.

Ausgabe der Daten im Terminalfenster:

pi@raspberrypi:~ $ sudo collectord -u ems -p password -f -d all 
serial:/dev/ttyUSB0
IO: Got bytes 0x30 0x38 0x20
IO: Got bytes 0x30 0x30 0x20 0x31 0x39 0x20
IO: Got bytes 0x30 0x30 0x20 0x30 0x30 0x20 0x39 0x66 0x20 0x30 0x31 
0x20 0x35 0x65 0x20
IO: Got bytes 0x38 0x30 0x20
IO: Got bytes 0x30 0x30 0x20 0x30 0x30 0x20 0x30 0x30 0x20 0x30 0x30
IO: Got bytes 0x20 0x33 0x66 0x20


Ist jetzt einfach nur das Datenformat noch nicht passend, so das der 
Collector damit etwas anfangen kann oder habe ich Dinge bei der 
Installation vergessen bzw. falsch gemacht.
Was kann ich noch tun um zu testen ob alles korrekt ist ?

Gruß
Jens

von Danny B. (maniac103)


Lesenswert?

Jens H. schrieb:

> Die Firmware ist die aus dem Wiki (2.1 Beta 131118) und Ausgabemodus ist
> RAW (getestet mit Putty über USB direkt an der Platine).

Was hat denn der Test ergeben, was wurde denn da ausgegeben? Das was ich 
hier sehe ist ASCII, nicht raw.

> Ausgabe der Daten im Terminalfenster:
>
> pi@raspberrypi:~ $ sudo collectord -u ems -p password -f -d all
> serial:/dev/ttyUSB0
> IO: Got bytes 0x30 0x38 0x20
08<space>
> IO: Got bytes 0x30 0x30 0x20 0x31 0x39 0x20
00 19
> IO: Got bytes 0x30 0x30 0x20 0x30 0x30 0x20 0x39 0x66 0x20 0x30 0x31
> 0x20 0x35 0x65 0x20
00 00 9f 01 5e
> IO: Got bytes 0x38 0x30 0x20
80

usw.

Da ist im Gateway noch was schief...

von Jens H. (Gast)


Lesenswert?

Ok, habe jetzt an statt der DIP Schalter das Ganze über Putty umgestellt 
auf Kr 1 ... sollte dann jetzt aber RAW sein.
1
IO: Got bytes 0xaa 0x55 0x8 00 0x34 00 0x3c 0x2 0x62 0x2 0x62 0x21 00 0x1 00 00 0x1 0xac 0x9 00 0x15 0x61 00 0x88 00 0x17 0xaa 0x55
2
IO: Got bytes 0xaa 0x55 0x8 00 0x18 00 0x24 0x1 0x69 0x64 0x14 0x9 0x1 0x25 0x62 0x80 00 0x2 0x62 0x1 0x4f 00 0x1e 0x12 0x2d 0x48 00 0xc8 00 0x2 00 0xfe 00 0x1f 0xaa 0x55
3
IO: Got bytes 0xaa 0x55 0x8 00 0x18 00 0x24 0x1 0x69 0x64 0x14 0x9 0x1 0x25 0x62 0x80 00 0x2 0x62 0x1 0x4e 00 0x1e 0x13 0x2d 0x48 00 0xc8 00 0x2 00 0x1a 00 0x1f 0xaa 0x55
4
IO: Got bytes 0xaa 0x55 0x8 00 0x18 00 0x24 0x1 0x69 0x64 0x14 0x9 0x1 0x25 0x62 0x80 00 0x2 0x62 0x1 0x4e 00 0x1e 0x12 0x2d 0x48 00 0xc8 00 0x2 00 0x9a 00 0x1f 0xaa 0x55
5
IO: Got bytes 0xaa 0x55 0x8 00 0x18 00 0x24 0x1 0x69 0x64 0x14 0x9 0x1 0x25 0x62 0x80 00 0x2 0x62 0x1 0x4f 00 0x1f 0x13 0x2d 0x48 00 0xc8 00 0x2
6
IO: Got bytes 00 0x67 00 0x1f 0xaa 0x55
7
IO: Got bytes 0xaa 0x55 0x8 00 0x18 00 0x24 0x1 0x69 0x64 0x14 0x9 0x1 0x25 0x62 0x80 00 0x2 0x62 0x1 0x4f 00 0x1e 0x13 0x2d 0x48 00 0xc8 00 0x2 00 0x7e 00 0x1f 0xaa 0x55
8
IO: Got bytes 0xaa 0x55 0x8 00 0x18 00 0x24 0x1 0x69 0x64 0x14 0x9 0x1 0x25 0x62 0x80 00 0x2 0x62 0x1 0x4f 00 0x1f 0x12 0x2d 0x48 00 0xc8 00 0x2 00 0xe7 00 0x1f 0xaa 0x55
9
IO: Got bytes 0xaa 0x55 0x8 00 0x34 00 0x3c 0x2 0x62 0x2 0x62 0x21 00 0x1 00 00 0x1 0xac 0x9 00 0x15 0x61 00 0x88 00 0x17 0xaa 0x55
10
IO: Got bytes 0xaa 0x55 0x8 00 0x18 00 0x24 0x1 0x69 0x64 0x14 0x9 0x1 0x25 0x62 0x80 00 0x2 0x62 0x1 0x4f 00 0x1f 0x13 0x2d 0x48 00 0xc8 00 0x2 00 0x67 00
11
IO: Got bytes 0x1f 0xaa 0x55
12
IO: Got bytes 0xaa 0x55 0x8 00 0x18 00 0x24 0x1 0x69 0x64 0x14 0x9 0x1
13
IO: Got bytes 0x25 0x62 0x80 00 0x2 0x62 0x1 0x4f 00 0x1f 0x12 0x2d 0x48 00 0xc8 00 0x2 00 0xe7 00 0x1f 0xaa 0x55
14
IO: Got bytes 0xaa 0x55 0x8 00 0x18 00 0x24 0x1 0x69 0x64 0x14 0x9 0x1 0x25 0x62 0x80 00 0x2 0x62
15
IO: Got bytes 0x1 0x4f 00 0x1e 0x13 0x2d 0x48 00 0xc8 00 0x2 00 0x7e 00 0x1f 0xaa 0x55

Auf der Webseite ändert sich aber trotzdem nix :(

von Danny B. (maniac103)


Lesenswert?

Das sieht prinzipiell richtig aus, ist aber Ingo's (zu meinem 
inkompatibles) Format (aa 55 data len 55 aa statt aa 55 len data 
checksum). Darüber hatten wir ja schon mal gesprochen.

Ingo, hängst du noch an diesem Format oder könntest du das mit dem 
Netz-Protokoll glattziehen?

von IngoF (Gast)


Lesenswert?

Jens H. schrieb:
> Ok, habe jetzt an statt der DIP Schalter das Ganze über Putty umgestellt
> auf Kr 1 ... sollte dann jetzt aber RAW sein.
Dann hattest Du auch schon nicht mehr die erste Firmware drauf hatte ich 
ncicht dran gedacht.

Danny B. schrieb:
> Ingo, hängst du noch an diesem Format oder könntest du das mit dem
> Netz-Protokoll glattziehen?

Nö, hatte historische Gründe. Werde das in der nächsten Zeit ändern. 
Kann noch ein paar Tage dauern..

von Jens H. (Gast)


Lesenswert?

IngoF schrieb:
> Nö, hatte historische Gründe. Werde das in der nächsten Zeit ändern.
> Kann noch ein paar Tage dauern..

Das wäre toll, habe nämlich Urlaub und könnte dann weiter machen :)

Gruß
Jens

von ingof (Gast)


Lesenswert?

Jens H. schrieb:
> Das wäre toll, habe nämlich Urlaub und könnte dann weiter machen :)

Kann natürlich keine Terminzusage machen.
Ist gerade schönstes Wetter und der Vorgarten ist gerade fertig 
geworden..

von Jens H. (Gast)


Lesenswert?

Na dann Happy Grilling :D

von Arnold P. (Gast)


Lesenswert?

Hallo,
ich habe den Raspberry Pi und den Net IO soweit zum laufen gebracht, 
dass der CollectorD die Rohdaten anzeigt und richtig interpretiert.

Mein Problem: das Einrichten der ems-tools und des ems-php-webinterface

Beim starten des "emsclient" findet das Programm die 
"emsincludes/emsqry.inc" nicht, obwohl ich im Linux root Verzeichnis ein 
Symlink mit "ln -s" auf /home/pi/ems-tools/includes erstellt habe.
Unter emsincludes werden auch alle Dateien angezeigt.

Wozu wird der Symlink erstellt? Kann das Programm nicht einfach aus dem 
Ausführordner auf die includes zugreifen?

Kann mir jemand einen Tip geben?

Gruß
Arnold

von ingof (Gast)


Lesenswert?

Arnold P. schrieb:
> Hallo,
> ich habe den Raspberry Pi und den Net IO soweit zum laufen gebracht,
> dass der CollectorD die Rohdaten anzeigt und richtig interpretiert.
>
> Mein Problem: das Einrichten der ems-tools und des ems-php-webinterface
>
> Beim starten des "emsclient" findet das Programm die
> "emsincludes/emsqry.inc" nicht, obwohl ich im Linux root Verzeichnis ein
> Symlink mit "ln -s" auf /home/pi/ems-tools/includes erstellt habe.
> Unter emsincludes werden auch alle Dateien angezeigt.
>
> Wozu wird der Symlink erstellt? Kann das Programm nicht einfach aus dem
> Ausführordner auf die includes zugreifen?
>
> Kann mir jemand einen Tip geben?
>
> Gruß
> Arnold

Welche Quellen hast Du genommen? github.com/ingof/... ??
Ich habe ja aus verschiedenen Quellen Bugfixes und Änderungen 
eingepflegt.

Ich hatte zumindest mal gesehen dass die emsincludes relativ statt 
absolut angegeben wurden. Hatte überlegt ob ich das eingepflegt hatte.

Also statt "/emsincludes" "emsincludes". Dann müsstest Du also in dem 
Pfad in dem auf die emsincludes zugegriffem wird den link setzen un 
nicht im root-Verzeichnis.

Kannst ja mal nachsehen in welcher Datei der Fehle gemeldet wird. Diese 
Dateien öffnen und nachsauchen ob dort /emsinlcudes oder emsincludes 
angegeben ist.

Ich habe gerade mal einige Dateien durcsucht aber weder /emsincludes 
noch emsincludes gefunden.

Dann muss ich aber noch das Wiki anpassen...

von Ingo F. (ingof)


Lesenswert?

Habe es gerade gefunden.
Die Pfade sind jetzt relativ. in Emsincludes steht folgendes:
1
require("emsincludes/emsqry.inc");

es würde reichen einfach den Order emsincludes ins Verzeichnis vom 
emsclient zu verschieben oder zumindest den link dorthin zu erstellen.

Vielleicht kann ich das ja schon direkt github ändern.

von Ingo F. (ingof)


Lesenswert?

Ingo F. schrieb:
> Vielleicht kann ich das ja schon direkt github ändern.

Also ich habe den emsincludes dort gelassen wo er ist.
habe dann in emsclient den Pfad auf ../emsincludes geändert.

Genaus die Pfade in den Dateien im Scripts Ordner.
Ich hoffe ich habe nichts "verschlimmbessert"

Arnold P. schrieb:
> Kann mir jemand einen Tip geben?

Sag mal bescheid ob es jetzt läuft.
Habe jetzt keinen Verweis im ems-php-webinterface auf /emsincludes 
gefunden.
Falls doch kann man vermutlich nicht ganz so einfach komplett auf den 
link im Wurzelverziehnis zu emsincludes verzichten...

: Bearbeitet durch User
von Ingo F. (ingof)


Lesenswert?

Jens H. schrieb:
> Das wäre toll, habe nämlich Urlaub und könnte dann weiter machen :)

So, habe mich bei dem schönen Wetter mal in den Keller verkrochen damit 
Du Dich auch in den Keller verkriechen kannst ;-)

So sieht jetzt die Ausgabe aus:
1
AA 55 09 10 08 1A 00 00 00 00 00 91 93
2
AA 55 01 01 01
3
AA 55 01 01 01 AA 55 07 10 08 35 00 11 11 30 1D

@Danny sollte doche schon mal ganz gut aussehen, oder?

Denke das ACK muss noch anders gesendet werden (01)

Die Richtung emscollector Richtung EMS-Gateway ist noch unverändert. 
Aber vielleicht hilft die Richtung emscollector schon mal etwas 
weiter...

Werde Dir den ersten Versuch heute abend mailen.. Jetzt muss ich erst 
mal wieder ans Tageslicht...

: Bearbeitet durch User
von Jens H. (Gast)


Lesenswert?

Hallo Ingo,

vielen Dank :-)

inspostfachguck

von Danny B. (maniac103)


Lesenswert?

Ingo F. schrieb:
> So sieht jetzt die Ausgabe aus:
>
1
> AA 55 09 10 08 1A 00 00 00 00 00 91 93
2
> AA 55 01 01 01
3
> AA 55 01 01 01 AA 55 07 10 08 35 00 11 11 30 1D
>
> @Danny sollte doche schon mal ganz gut aussehen, oder?
Ja. Die Prüfsumme hab ich nicht nachgerechnet, ich traue dir allerdings 
zu, ein running XOR zu implementieren ;)

> Denke das ACK muss noch anders gesendet werden (01)
Jup. Das sende ich als Fake-Paket: <source> <dest = 0xb> <type = 0xff> 
<0x1 oder 0x4> - und das Framing natürlich noch außendrum. Ist für das 
serielle Interface aber eh egal, da ich da senden im Moment nicht 
unterstütze.

: Bearbeitet durch User
von Jens H. (Gast)


Lesenswert?

Oh oh .. senden geht seriell nicht ? :(
Also muss ich doch auf Ethernet umbauen ?

von Danny B. (maniac103)


Lesenswert?

Jens H. schrieb:
> Oh oh .. senden geht seriell nicht ? :(
> Also muss ich doch auf Ethernet umbauen ?

Wenn du (in absehbarer Zeit) zur Heizung senden willst schon. Ich hatte 
das nie implementiert, da meine damalige serielle Hardware (ein Atmega8) 
nur eine serielle Schnittstelle hatte, man aber 2 gebraucht hätte. Das 
kann man alles noch nachziehen, allerdings macht mir das aus 2 Gründen 
im Moment Probleme: Zeitmangel und die fehlende Möglichkeit, das zu 
testen. Wenn du etwas Geduld mitbringst (2-3 Wochen), kann ich das mal 
testweise implementieren, damit du das verifizieren kannst.

von Jens H. (Gast)


Lesenswert?

Wenn Du das tatsächlich in absehbarer Zeit (2-3 Wochen) in Angriff 
nehmen würdest, dann hätte ich mit dem Warten kein Problem ;)

von Ingo F. (ingof)


Lesenswert?

Danny B. schrieb:
> Jup. Das sende ich als Fake-Paket: <source> <dest = 0xb> <type = 0xff>
> <0x1 oder 0x4>

Um Unklarheiten auszuschließen:

DU, als NetIO, sendest das Fake-Paket und nicht DU, als Collector?

Die ACK NACK werden ja auf dem EMS-Bus vom Bus-Master gesendet wenn ein 
Telegramm  beim Busmaster empfangen wurde. Der Bus-Teilnehmer sendet ja 
diese Telegramme nicht.

Oder sendet der collector die Telegramme auch noch an den NetIO. Wenn 
dann werden die nur vom NetIO ausgewertet und nicht an den EMS-Bus 
weitergeleitet?!

Denke dann muss ich "EMS > EMS-GW > Raspi" im Wiki auch noch anpassen...

Danny B. schrieb:
> ich traue dir allerdings zu, ein running XOR zu implementieren

Danke für das Vertrauen :-D

Danny B. schrieb:
> und die fehlende Möglichkeit, das zu
> testen.

Notfalls hätte ich noch zeitweise einen EMS-Gateway den ich dir 
ausleihen könnte. Aber die hin und her schickerei lohnt sich wohl eher 
nicht.

Das umbauen der Empfangsfunktion könnte bei mir auch so 2-3 Wochen 
daueren.

von Jens H. (Gast)


Lesenswert?

Hallo Danny,

nachdem Ingo mit netterweise eine neue FW gebastelt hat, bekomme ich 
jetzt folgendes:
1
pi@raspberrypi:~ $ sudo collectord -u ems -p password -f -d all serial:/dev/ttyUSB0
2
IO: Got bytes 0xaa 0x55 0x1e 0x8 00 0x18 00 0x7 0x2 0x90 00 00 00 00 00 0x62 0x80 00 0x2 0x67 0x2 0x9f 00 00 0x11 0x3                                                                      0 0x48 00 0xcb 00 00 00 0xd0 0xed
3
MESSAGE[08.05.2016 11:29:55]: source 0x08, dest 0x00, type 0x18, offset 0, data: 0x07 0x02 0x90 0x00 0x00 0x00 0x00 0                                                                      x00 0x62 0x80 0x00 0x02 0x67 0x02 0x9f 0x00 0x00 0x11 0x30 0x48 0x00 0xcb 0x00 0x00 0x00 0xd0
4
DATA: Kessel-Solltemperatur = 7 °C
5
DATA: Kessel-Isttemperatur = 65.6 °C
6
DATA: Brenner-Sollwert Modulation = 0 %
7
DATA: Brenner-Istwert Modulation = 0 %
8
DATA: Flamme = AUS
9
DATA: Brenner = AUS
10
DATA: Zündung = AUS
11
DATA: Kessel-Pumpe = AUS
12
DATA: 3-Wege-Ventil auf WW = AUS
13
DATA: Zirkulation = AUS
14
DATA: Rücklauf-Isttemperatur = 67.1 °C
15
DATA: Flammenstrom = 0 µA
16
DATA: Systemdruck = 1.7 bar
17
DATA: Servicecode = 0H
18
DATA: Fehlercode = 203
19
IO: Got bytes 0xaa 0x55 0x7 0x10 0x8 0x35 00 0x11 0x11 0x30 0x1d
20
MESSAGE[08.05.2016 11:30:04]: source 0x10, dest 0x08, type 0x35, offset 0, data: 0x11 0x11 0x30
21
IO: Got bytes 0xaa 0x55 0x20 0x8 00 0x19 00 00 0xdd 0x2 0xfb 0x80 00 00 00 00 00 00 0xac 0xf7 0x18 0x89 0x59 00 00 00 0x16 0xdc 0x2d 00 0x97 0x84 00
22
IO: Got bytes 0xaa 0x55 0xd 0x10 00 0x6 00 0x10 0x5 0xb 0x8 0x10 0x16
23
IO: Got bytes 0xaa 0x55 0x16 0x8 00 0x34 00 0x3c 0x2 0x67 0x2 0x67 0x21 00 0x1 00 00 0x1 0xad 0x2c 00 0x15 0x73 00 0x3f 0xf9
24
MESSAGE[08.05.2016 11:30:06]: source 0x08, dest 0x00, type 0x34, offset 0, data: 0x3c 0x02 0x67 0x02 0x67 0x21 0x00 0x01 0x00 0x00 0x01 0xad 0x2c 0x00 0x15 0x73 0x00 0x3f
25
DATA: Warmwasser-Solltemperatur = 60 °C
26
DATA: Warmwasser-Isttemperatur = 61.5 °C
27
DATA: Warmwasser-Tagbetrieb = AN
28
DATA: Warmwasser-Einmalladung = AUS
29
DATA: Warmwasser-Therm. Desinfektion = AUS
30
DATA: WW-Bereitung = AUS
31
DATA: Warmwasser-Nachladung = AUS
32
DATA: WW-Temperatur OK = AN
33
DATA: Warmwasser-Fühler 1 defekt = AUS
34
DATA: Warmwasser-Fühler 2 defekt = AUS
35
DATA: Warmwasser-Störung = AUS
36
DATA: Warmwasser-Störung Desinfektion = AUS
37
DATA: Zirkulation-Tagbetrieb = AN
38
DATA: Zirkulation = AUS
39
DATA: Warmwasser-Ladevorgang = AUS
40
DATA: WW-System-Typ = keins
41
DATA: Warmwasser-Durchflussmenge = 0 l/min
42
DATA: WW-Bereitungszeit = 109868 min
43
DATA: WW-Bereitungen  = 5491
44
DATA: Zirkulation-Betriebsart = Automatik
45
IO: Got bytes 0xaa 0x55 0x12 0x8 00 0x7 00 0xb 0x1 00 00 00 00 00 00 00 00 00 00 00 0xf6 0xf3
46
MESSAGE[08.05.2016 11:30:06]: source 0x08, dest 0x00, type 0x07, offset 0, data: 0x0b 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xf6
47
DATA: Unhandled message received(source 0x08, type 0x07).
48
IO: Got bytes 0xaa 0x55 0x9 0x10 0x8 0x1a 00 00 00 00 00 0x91 0x93
49
MESSAGE[08.05.2016 11:30:07]: source 0x10, dest 0x08, type 0x1a, offset 0, data: 0x00 0x00 0x00 0x00 0x91
50
IO: Got bytes 0xaa 0x55 0x12 0x10 00 0xa3 00 0x13 0x11 0x1 0x1 0x2e 0x1 0x34 0x1 0x34 0x83 00 0x83 00 0x36 0xa9
51
MESSAGE[08.05.2016 11:30:13]: source 0x10, dest 0x00, type 0xa3, offset 0, data: 0x13 0x11 0x01 0x01 0x2e 0x01 0x34 0x01 0x34 0x83 0x00 0x83 0x00 0x36
52
DATA: Außen-Temperatur (gedämpft) = 19 °C
53
IO: Got bytes 0xaa 0x55 0x16 0x8 00 0x34 00 0x3c 0x2 0x67 0x2 0x67 0x21 00 0x1
54
IO: Got bytes 0xaa 0x55 0x1e 0x8 00 0x18 00 0x7 0x2 0x8f 00 00 00 00 00 0x62 0x80 00 0x2 0x67 0x2 0x9f 00 00 0x11 0x30 0x48 00 0xcb 00 00 00 0x14 0x36

Daten werden also größtenteils entschlüsselt.
Ne Idee was der Rest dazwischen ist, muss das so sein oder habe ich noch 
Einstellungen zu ändern ?
Ich musste nämlich im Gateway die Option CatchAll auf 1 setzen, damit 
über etwas ankommt.

Gruß
Jens

von Ingo F. (ingof)


Lesenswert?

Hallo Jens,

schön zu hören dass es schon läuft.

Unhandled Message bedeutet nur dass das Telegramm dem Collector nicht 
bekannt ist.
Aber das Telegramm 0x07 scheint generell noch nicht bekannt zu sein.

Das IOBytes sind die Daten die empfangen wurden

Sobald ein *MESSAGE[Zeitstempel]* ausgegeben wird hat der collector die 
Nachricht (IOBytes) korrekt empfangen.

Das CatchAll ist defaultmäßig immer deaktiviert und muss erst aktiviert 
sein.
Hat den Grund dass nicht sofort massenhaft Daten ausgegeben werden bevor 
der EMS-Gateway richtig konfiguriert wurde.

Sonst ist aber schon alles eingestellt und muss/soll nicht mehr 
verändert werden.

von Helmut J. (helmbrot)


Lesenswert?

Hallo IngoF;
ich habe noch ein Problem im dem ems-php-webinterface gefunden:

Im Bild Live Status Bild unter Betriebsart wird der Automatik Betrieb 
nicht angezeigt. Lösung:
In lemscnt.ajax zeile 67)

Den hk1 automode gibt es nicht. es gibt den hk1 opmode

67 print("<tr><td valign=top>Betriebsart</b><br><font size=+1>".($d["hk1 
daymode"]=="on"?"Tag":"Nacht")."</font><br> ".($d["hk1 
opmode"]=="auto"?"Automatik":"Manuell"));

Das Problem vom Arnold P. mit dem Symlink mit "ln -s" hatte ich auch.
"Beim starten des "emsclient" findet das Programm die
"/emsincludes/emsqry.inc" nicht".
Lösung: Habe unter Nautilus (Ubuntu) im Ordner 
/home/helmut/ems-collector/ems-tools/includes eine Verknüpfung gesetzt 
und diese ins /var/www/html kopiert.
Wie das über das Terminal geht würde mich sehr interessieren.

von Ingo F. (ingof)


Lesenswert?

Helmut J. schrieb:
> Wie das über das Terminal geht würde mich sehr interessieren
1
ln -s /home/helmut/ems-collector/ems-tools/includes /var/www/html/emsincludes


Die Änderungen mit dem "opmode" habe ich gerade so übernommen. 
Dummerweise ist Github gerade nicht erreichbar...

Helmut J. schrieb:
> as Problem vom Arnold P. mit dem Symlink mit "ln -s" hatte ich auch.

habe gerade gesehen dass es auch noch im ems-php-webinterface massenhaft 
verknüpfungen nach /emsincludes gibt.

Wo kann man denn am besten den Link generell hinsetzen?

/emsincludes ist nicht soooo toll, oder?

Wohin packt man denn sowas am besten /opt/emsinludes, /etc/emsinclude, 
/var/emsincludes oder vielleicht /home/user/emsincludes?

Oder wäre es nicht besser gleich den ganzen Order an einem bestimmten 
Ort zu packen?

vielleicht kann ich dann ja eine install.sh Datei oder ähnliches 
erstellen.

Gruß
Ingo

: Bearbeitet durch User
von Danny B. (maniac103)


Lesenswert?

Ich hatte es bei mir in /use/local/lib/ems gepackt, d.h. etwas 
generischer $PREFIX/lib/ems.

von Jens H. (Gast)


Lesenswert?

Daran versuche ich mich auch gerade ... allerdings hat die Lösung von 
Helmut bei mir nicht funktioniert :(
1
pi@raspberrypi:/ $ ln -s /home/pi/ems-tools/includes /var/www/html/emsincludes

[quote]
pi@raspberrypi:~/ems-tools/cli $ ./emsclient
PHP Warning:  require(../emsincludes/emsqry.inc): failed to open stream: 
No such file or directory in /home/pi/ems-tools/cli/emsclient on line 3
PHP Fatal error:  require(): Failed opening required 
'../emsincludes/emsqry.inc' 
(include_path='.:/usr/share/php:/usr/share/pear') in 
/home/pi/ems-tools/cli/emsclient on line 3
[/quote]

von Ingo F. (ingof)


Lesenswert?

Jens H. schrieb:
> Helmut bei mir nicht funktioniert :(

Dieser symbolische Link ist für das php-webinterface. Also die Dateien 
die im Webverzeichnis liegen und den zugriff zu den Dateien benötigen. 
(aber sind dort wird doch auch auf die /emsinlcudes zugegriffen, oder?!)

Bei Dir meckert "emsclient"

Habe jetzt die Pfade wieder im GIT auf /emsincludes geändert.

Also einfach den symbolischen Link im Wurzelverzeichnis erzeugen wenn Du 
die Dateien neu aus dem GIT geholt hast.

also:
1
ln -s /dein/verzeichnis/ems-tools/includes /emsincludes
 sollte dann funktionieren.

von Helmut J. (helmbrot)


Lesenswert?

Hallo Ingo,
Zu)
Wo kann man denn am besten den Link generell hinsetzen?
/emsincludes ist nicht soooo toll, oder?

Ich meine /usr/local/lib  ist nicht schlecht.
Gruß
Helmut

von Ingo F. (ingof)


Lesenswert?

Helmut J. schrieb:
> Ich meine /usr/local/lib  ist nicht schlecht.
> Gruß
> Helmut

Ja, denke das ist generell schon mal ganz gut.

Allerdings sind (noch) alle Dateien auf "/emsincludes" gesetzt.

Dann müsstest Du jetzt erst mal selber sämtliche Dateien in den 
ems-tools (4-5) und in ems-php-webinterface anpassen auf 
"/usr/local/lib/"

oder eben erst einmal auf "/emsincludes" lassen und dann im 
Wurzelverzeichnis erstellen.

: Bearbeitet durch User
von Jens H. (sevensworld)


Lesenswert?

Ich hatte den Link schon im Wurzelverzeichnis und auch schon mit dem / 
vorne und auch ohne.
Den emsclient muss ich eigentlich wo hin kopieren? Ich habe die 
ems-tools jetzt erst mal nur in /home/pi/ems-tools und habe im 
Unterordner CLI dann den client gestartet!?
Bin aus der Installationsanleitung nicht schlau geworden :(

von Jens H. (sevensworld)


Lesenswert?

So, noch mal ein wenig herumprobiert.
In 'emsclient' habe ich Zeile 3 geändert in
1
require("../includes/emsqry.inc");
und dann in der emsqry.inc die Zeile 2 in
1
require("includes/config.php");

Dann den emsclient starten:
1
pi@raspberrypi:~/ems-tools/cli $ ./emsclient
2
EMS-Client V0.1 (c) 2014 by Michael Moosbauer
3
Connecting to EMS-Bus... OK!
4
ems:/> help
5
PHP Warning:  socket_connect(): unable to connect [111]: Connection refused in /home/pi/ems-tools/includes/emsqry.inc on line 37
6
FATAL: Keine Verbindung zum EMS-Bus!
7
Grund: Connection refused
Eine Verbindung zum Port 7777 (Zeile 37) klappt nicht, allerdings auch 
nicht per manuellem Befehl. 7778 klappt aber sehr wohl !?

von Jens H. (sevensworld)


Lesenswert?

@Danny:
1
pi@raspberrypi:~ $ netstat -aon | grep "7777"
2
pi@raspberrypi:~ $ netstat -aon | grep "7778"
3
tcp        0      0 0.0.0.0:7778            0.0.0.0:*               LISTEN      aus (0.00/0/0)

Wie man sieht geht der 7778 einwandfrei, der 7777 ist nicht vorhanden, 
wird also trotz Eintrag in der Config gar nicht erst gestartet. Hängt 
das mit der fehlenden Sendeunterstützung per USB zusammen ? Falls nicht, 
wo kann ich suchen um den Fehler zu finden ?

Dadurch das der 7777 nicht geht, wird im WebIf natürlich auch nix 
angezeigt. Lediglich das Protokoll der Servicecodes geht.



Gruß
Jens

: Bearbeitet durch User
von Ingo F. (ingof)


Lesenswert?

Der Port sollte immer funktionieren... Vielleicht irgendwo ein 
Tippfehler. Kannst ja mal die Config-Dateien vom collector posten...

von Danny B. (maniac103)


Lesenswert?

Jens H. schrieb:
> Wie man sieht geht der 7778 einwandfrei, der 7777 ist nicht vorhanden,
> wird also trotz Eintrag in der Config gar nicht erst gestartet. Hängt
> das mit der fehlenden Sendeunterstützung per USB zusammen ? Falls nicht,
> wo kann ich suchen um den Fehler zu finden ?

Ja, tut es. Ohne Sendeunterstützung ist der Kommando-Port vollkommen 
sinnlos, weil sämtliche Kommandos senden können müssen, um zu 
funktionieren; aus diesem Grund wird er ohne Sendeunterstüzung auch 
nicht angeknipst.

von Ingo F. (ingof)


Lesenswert?

Ingo F. schrieb:
> Der Port sollte immer funktionieren...

Tja wenn man etwas nicht wirklich weiss sollte man lieber die Klappe 
halten ;-)

von Jens H. (sevensworld)


Lesenswert?

Ok, so etwas hatte ich mir schon gedacht, schade. Dann muss ich warten 
bis zu Zeit findest das einzubauen.
Auf die Daten kann ich mir zumindest schon mal über eine Verbindung zur 
SqlDB von extern lesend zugreifen.

Wie ist das, besteht eigentlich die Möglichkeit die Daten, die auf dem 
7778 angezeigt werden auch auf einem Port nach extern verfügbar zu 
machen? Der 7778 geht ja nur lokal auf dem Raspi.

Gruß
Jens

von Danny B. (maniac103)


Lesenswert?

Jens H. schrieb:
> Wie ist das, besteht eigentlich die Möglichkeit die Daten, die auf dem
> 7778 angezeigt werden auch auf einem Port nach extern verfügbar zu
> machen? Der 7778 geht ja nur lokal auf dem Raspi.

Der muss auch von anderen Rechnern im Netzwerk erreichbar sein (und ist 
es in meiner Installation auch). Sieht man ja auch in deiner 
netstat-Ausgabe oben, dass er auf die IP 0.0.0.0 (= alle) gebunden ist.

von Jens H. (sevensworld)


Lesenswert?

Davon war ich ausgegangen, habe aber die Verbindung nicht hinbekommen, 
aber ich habe die ganze Zeit den Port falsch übergeben. Kaum macht man 
es richtig, schon funktioniert's.
Ich sollte das lieber tagsüber machen und nicht mitten in der Nacht. ;)

von Arnold P. (Gast)


Lesenswert?

Vielen Dank für die schnellen Antworten.
Habe inzwischen durch die Pfandanpassungen die EMS Tools zum laufen 
gebracht.

Im Moment komme ich mit dem Webinterface nicht weiter. Als Webserver 
verwende ich den Lighttpd mit PHP addon.

Habe die www-Dateien von "https://github.com/ingof/ems-php-webinterface"; 
in den html Ordner des lighttpd kopiert(und die Konfigurationsdateien 
angepasst). Im Webbrowser lassen sie sich öffnen, bekomme jedoch keine 
EMS Daten angezeigt. Die Seite "EMS-Rohdaten" bleibt leer. Auch der 
Funktionstest zeigt nichts an.

Im lighttpd log befinden sich auch keine Fehler.

Irgendwie klappt die Schnittstelle Webbrowser->EMS-Tools nicht.
Hat jemand eine Idee?

Gruß
Arnold

von Jens H. (sevensworld)


Lesenswert?

Also wenn die EMS-Tools einwandfrei laufen, dann sollte das klappen.
Siehst du den auf keiner Seite im Webfront etwas, auch keine 
Fehlermeldung ?
Wie hast Du geprüft ob die Tools laufen ? Telnetverbindung zu 7777 und 
7778 klappt ?

Gruß
Jens

von Arnold P. (Gast)


Angehängte Dateien:

Lesenswert?

Habe den Fehler gefunden. Durch eine falsche Zeiteinstellung auf dem Pi 
habe ich die lighttpd server logs falsch interpretiert. Es war doch ein 
Fehler eingetragen. Er hat eine Datei nicht gefunden.
Habe übersehen den Pfad in der Datei emsdetail.ajax zu korrigieren.

Scheint alles, bis auf die Statistik graphs, zu funktionieren.

von Danny B. (maniac103)


Lesenswert?

Ingo, welches Format hättest du denn gerne als Input zum Senden über die 
serielle? Ich hätte an etwas ähnliches gedacht wie beim Empfangen, nur 
ohne Senderadresse ... also so in etwa:

0xaa 0x55 <len> <dest> <type> <payload0> ... <payloadX> <checksum>

wobei Checksum wieder das running XOR ist. Ich kann auch gerne noch die 
Absenderadresse mit einfügen, dann ist's ganz konsistent.

Meinungen?

von Ingo F. (ingof)


Lesenswert?

Danny B. schrieb:
> 0xaa 0x55 <len> <dest> <type> <payload0> ... <payloadX> <checksum>

klingt doch gut. Und das running XOR startet dann auch bei <dest>.


Denke ich setze den Pfad bei den ems-tools und ems-php-webinterface auf:
1
/usr/local/lib/ems/include

Wie meintest Du das mit $PREFIX. Wo und wie hast Du das PREFIX  gesetzt?

am liebsten würde ich auch dazu tendieren emstools und das 
ems-php-webinterface in ein github-repository zu packen. Eigentlich wird 
ja immer nur beides zusammen benötigt, oder?

: Bearbeitet durch User
von Ingo F. (ingof)


Lesenswert?

Ingo F. schrieb:
>> 0xaa 0x55 <len> <dest> <type> <payload0> ... <payloadX> <checksum>
>
> klingt doch gut. Und das running XOR startet dann auch bei <dest>.

Bin gerade dabei das neue Empfangsformat "einzubauen".

Denke es wäre besser doch noch die Quelladresse vom EMS-Bus einzubauen.

Sonst muss ich zuviel umbauen. Das erste Byte benutze ich zum erkennen 
ob EMS-Daten oder CAN-Daten empfangen wurden.
also
1
0xaa 0x55 <len> <src> <dest> <type> <payload0> ... <payloadX> <checksum>

von Ingo F. (ingof)


Lesenswert?

Ingo F. schrieb:
> 0xaa 0x55 <len> <src> <dest> <type> <payload0> ... <payloadX> <checksum>

Hallo Danny,

der "Serial Collector Support" ist jetzt drin und läuft
z.B die Abfrage für Datum und Zeit:
1
aa 55 05 0b 10 06 00 08 15

von Florian R. (florianr)


Lesenswert?

Guten Tag,

nach dem ersten Fehlschlag vor einigen Wochen habe ich nun mit einem 
sauberen Raspbian Jessie neu gestartet. Das lief gleich vieeeeel besser 
:) Momentan hängts beim Einrichten des Service und der Erreichbarkeit 
auf Port 7777.

collectord wurde kompiliert und liegt nunmehr im Pfad
1
/home/pi/ems-collector/collector/collectord

Ich kann ausschließlich mit
1
sudo /home/pi/ems-collector/collector/collectord -h
 bzw mit
1
sudo /home/pi/ems-collector/collector/collectord -u ems -p *** -f -d all tcp:****:7950
ausführen. Dann funktioniert die Verbindung zum NetIO problemlos und die 
Daten des EMS-Bus kommen an.

Jetzt habe ich die Configs wie im Wiki beschrieben angelegt.
1
/etc/default/ems-collector
 und
1
/etc/ems-collector.conf
 und jeweils das SERIALDEVICE sowie db-user und db-pass angepasst.

Die Datei
1
/etc/init.d/ems-collector
 habe ich auch angelegt, aber Zeile 21 nicht angepasst. Dort steht 
unverändert
1
PROG="/usr/local/sbin/$PROGNAME"
Einbindung in die Startscripte ist ebenfalls erfolgt.
1
service ems-collector
 funktioniert auch. Dienst wird gestartet und gestoppt, Statusabfrage 
funktioniert.

Aber Port 7777 ist nicht erreichbar. Ich habe die vage Vermutung, dass 
die Verknüpfung von collectord und ems-collector nicht vorhanden ist?! 
In welchen Pfad wird der ems-collector Ordner von Github normalerweise 
abgelegt? Und wo muss die collectord hin? Kann die überhaupt unter 
Nutzer "pi" verbleiben?

Wie muss ich jetzt beim Einrichten des Website verfahren? Sowohl 
emstools als auch das Webinterface von Github laden und einrichten? Oder 
reicht das Webinterface als standalone?
Der Server-Ordner wird im Wiki mit "srv/www" angegeben. Ist das bei 
Verwendung von lighttpd analog der Ordner /var/www/html, aus welchem 
aktuell das php-Skript für den Webserver geladen wird?

Freue mich auf eure Antworten!

Viele Grüße
Florian

von Ingo F. (ingof)


Lesenswert?

Florian R. schrieb:
> und jeweils das SERIALDEVICE sowie db-user und db-pass angepasst.

jeweils ist bestimmt nicht gut. Such Die einen Ort für die 
Konfiguration aus.
Ich fand es am besten in der einen Datei nichts anzugeben und Link zur 
Konfigdatei zu aktivieren und dort dann alles festzulegen.

Probleme wird es spätestens dann geben wenn in einer Datei was anderes 
Konfiguriert ist. Keine Ahnung was der collector dann daraus macht.

Habe das jetzt gerade mal im Wiki geändert

Florian R. schrieb:
> Wie muss ich jetzt beim Einrichten des Website verfahren?

Zuerst die ems-tools "installieren" und testen.
Das ems-php-webinterface benötigt zwingend die ems-tools.

Florian R. schrieb:
> Server-Ordner wird im Wiki mit "srv/www"

Das ist der Ordner in dem die Dateien für den Webserver liegen. Je nach 
webserver gibt es einen anderen Pfad der angepasst werden muss.

: Bearbeitet durch User
von Danny B. (maniac103)


Lesenswert?

Ingo F. schrieb:
> der "Serial Collector Support" ist jetzt drin und läuft
> z.B die Abfrage für Datum und Zeit:
>
1
aa 55 05 0b 10 06 00 08 15

Dann kann Jens ja jetzt mal das hier testen: 
https://github.com/maniac103/ems-collector/commit/080006ff8d487a17d563a02a6670fc6589b67e60

<target> ist dafür z.B. tx-serial:/dev/ttyUSB0 - steht jetzt auch 
entsprechend in der Hilfe.

von Danny B. (maniac103)


Lesenswert?

Ingo F. schrieb:
> Probleme wird es spätestens dann geben wenn in einer Datei was anderes
> Konfiguriert ist. Keine Ahnung was der collector dann daraus macht.

Bislang haben Config-Datei-Optionen Kommandozeilenoptionen 
überschrieben. Da das eher unüblich ist, habe ich das grade mal 
geändert.

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.