Signalduino Entwicklung

Begonnen von thoffma3, 05 Juli 2015, 23:01:00

Vorheriges Thema - Nächstes Thema

Sidey

Hi Josef,

den SIGNALduino kannst Du auch ohne eine Schnittstelle definieren,
dazu einfach define sduino SIGNALDuino none .
Eventuell noch das Attribut dummy setzen.

So müsste es gehen.

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

Sidey

Hi Josef,

jetzt habe ich mir deine Log Ausgabe noch mal angesehen.

Die Logmeldungen im  Cresta Modul werden mit $name ... Ausgegeben.

$name kommt vom IO Device und heisst dann so wie der Signalduino.

Da könnte man CRESTA einschreiben. :)

Der Define Code ist so aufgebaut

<Sensor ID> <minsecs> <equalmsg>

Minsecs ist der Mindestabstand zwischen zwei Funkmeldungen, die akzeptiert werden.
Hintergrund: es gibt Sensoren, die senden im 30 Sekunden Takt immer das gleiche...
Equalmsg steuert die Verarbeitung wenn 2* hinter einander die gleiche Nachricht empfangen wurde.

Um ein Gerät definieren zu
können, müssten wir mal heraus bekommen, wie man anhand der empfangenen Daten das Sensor Modell ermittelt.

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

Sidey

Hallo,

ich habe gestern abend noch ein FHEM in Eclipse zum laufen gebracht. Den Signal Duino konnte ich dort auch definieren das Cresta Modul habe ich leider nicht aus dem Repo laden können.

Da stimmt irgendwas nicht wenn der Update Befehl versucht die Daten zu laden.

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

hjgode

Hallo Sidey

scheint dass Du es noch hinbekommen hast. Die Version 119 war von Dir.

Ich war auch fleißig (und dem Vertweifeln nahe).

Nach Korrektur von 14_Cresta.pm geht auch { Dispatch($defs{sduino}, "5875BDBA4AC2BEC855AC0A00", undef) }

Um ein Gerät definieren zu können, müssten wir mal heraus bekommen, wie man anhand der empfangenen Daten das Sensor Modell ermittelt.

Um die ID und den Sensortyp zu ermitteln, benötigt man die unverschlüsselten Daten.

Die Routinen zum Entschlüsseln und zum Extrahieren der Daten wären in SIGNALduino.pm dieselben wie in Cresta.pm. Deshalb hatte ich vorgeschlagen, diese Cresta spezifischen Funktionen in ein Modul auszulagern, dass dann von beiden Modulen benutzt werden kann.

Alternativ kann man die Bytes schon in SIGNALduino entschlüsseln und in Cresta.pm dann dekodieren. Bleibt aber immer noch die gemeinsame/doppelte Nutzung zum Dekodieren von ID und Typ.

Oder aber die Devices aus 14_Cresta geben sich mit der Übergabe (Dispatch) der unverschlüsselten Bytes zufrieden. Also kein <code> etc.

Das Cresta Device kann man an Hand der ID und dem Typ unterscheiden.

Die IDs liegen zwischen 1 und 5 in Byte 1:

ID (Byte 1) Description              Transmitting interval
0x20 - 0x3F Thermo/hygro-sensor at channel 1     43 Seconds
0x40 - 0x5F Thermo/hygro-sensor at channel 2     45 Seconds
0x60 - 0x7F Thermo/hygro-sensor at channel 3     47 Seconds
0x80 – 0x9F Rain sensor, UV sensor or anemometer  183, 300 or 33 Seconds
0xA0 - 0xBF Thermo/hygro-sensor at channel 4     49 Seconds
0xC0 - 0xDF Thermo/hygro-sensor at channel 5     51 Seconds

Der Typ eines Sensors steckt in Byte 3:

Byte3 & 0x1F  Device
0x0C         Anemometer
0x0D         UV sensor
0x0E         Rain level meter
0x1E         Thermo/hygro-sensor

Ein Cresta device könnte man dann über define <name> Cresta <id> <typ> <minsecs> <equalmsg> definieren.

Habe mal funktionierenden Code hochgeladen. Bei einem { Dispatch($defs{sduino}, "5875BDBA4AC2BEC855AC0A00", undef) } bekomme ich ein neues Device:

===========================================================================
2015.09.05 16:45:51 5: Cmd: >{ Dispatch($defs{sduino}, "5875BDBA4AC2BEC855AC0A00", undef) }<
2015.09.05 16:45:51 5: sduino dispatch 5875BDBA4AC2BEC855AC0A00
2015.09.05 16:45:51 4: sduino incomming 5875BDBA4AC2BEC855AC0A00
2015.09.05 16:45:51 4: sduino converted to bits: 011101011011110110111010010010101100001010111110110010000101010
1101011000000101000000000
2015.09.05 16:45:51 4: bytes arr->75c7cede46c258fff41e00
2015.09.05 16:45:51 4: bytes hex->75c7cede46c258fff41e00
2015.09.05 16:45:51 4: SensorTyp=30, 222
2015.09.05 16:45:51 4: sduino decoded Cresta protocol Typ=30, sensor id=1, channel=5, temp=24.6, humidity=58

2015.09.05 16:45:51 1: Cresta: UNDEFINED sensor 30 detected, code c7_1
2015.09.05 16:45:51 5: Triggering global (1 changes)
2015.09.05 16:45:51 5: Notify loop for global UNDEFINED 30_c7_1 Cresta c7_1
2015.09.05 16:45:51 2: autocreate: define 30_c7_1 Cresta c7_1
2015.09.05 16:45:51 5: Triggering global (2 changes)
2015.09.05 16:45:51 2: autocreate: define FileLog_30_c7_1 FileLog ./log/30_c7_1-%Y.log 30_c7_1
2015.09.05 16:45:51 5: Triggering global (3 changes)
2015.09.05 16:45:51 5: Triggering global (4 changes)
2015.09.05 16:45:51 4: Connection closed for FHEMWEB:127.0.0.1:54818: EOF
===========================================================================

Bei weiteren wiederholtem Dispatch:
===========================================================================
2015.09.05 16:47:02 5: Cmd: >{ Dispatch($defs{sduino}, "5875BDBA4AC2BEC855AC0A00", undef) }<
2015.09.05 16:47:02 5: sduino dispatch 5875BDBA4AC2BEC855AC0A00
2015.09.05 16:47:02 4: sduino incomming 5875BDBA4AC2BEC855AC0A00
2015.09.05 16:47:02 4: sduino converted to bits: 0111010110111101101110100100101011000010101111101100100001010101101011000000101000000000
2015.09.05 16:47:02 4: bytes arr->75c7cede46c258fff41e00
2015.09.05 16:47:02 4: bytes hex->75c7cede46c258fff41e00
2015.09.05 16:47:02 4: SensorTyp=30, 222
2015.09.05 16:47:02 4: sduino decoded Cresta protocol Typ=30, sensor id=1, channel=5, temp=24.6, humidity=58

2015.09.05 16:47:02 4: Cresta: sduino (5875BDBA4AC2BEC855AC0A00)
2015.09.05 16:47:02 4: Cresta sduino:sduino
2015.09.05 16:47:02 4: 32276:FHEMWEB:127.0.0.1:54814: /fhem&cmd=%7B+Dispatch%28%24defs%7Bsduino%7D%2C+%225875BDB
===========================================================================

In fhem wird unter room=Cresta ein Device c7_1 angelegt (da müssen wir uns noch was überlgen...). Unter dem Device erscheinen dann auch die Readings für temp und humi.

So weit so gut. Ich habe es nicht hinbekommen mit array als Argument für die subs zu arbeiten. Deshalb der Umstand mit einem Array und einem String in Cresta_Parse.

~josef
Debian SID mit aktuellem FHEM, nanoCUL 866, JeeLink EC3000, fhemduino, SIGNALduino,
3 x TFA TH Sensor, 1 x TFA TH Arduino Sender, 3 x EC3000, 4 x Elro Schaltsteckdosen, ESA2000
offline: Wibo Funkthermostat, 2 x ELV Funkthermostat FHT80, 2 FS20 ST4 Funksteckdose

hjgode

Und weil's so schön ist, hier noch mit Livedaten:

(http://www.hjgode.de/temp/Selection_057.png)

Übrigens, für die ToDo Liste:
crc sub muss ich noch machen
temp und hum sollten T und H heißen, wie das sonst in fhem üblich ist.

~josef
Debian SID mit aktuellem FHEM, nanoCUL 866, JeeLink EC3000, fhemduino, SIGNALduino,
3 x TFA TH Sensor, 1 x TFA TH Arduino Sender, 3 x EC3000, 4 x Elro Schaltsteckdosen, ESA2000
offline: Wibo Funkthermostat, 2 x ELV Funkthermostat FHT80, 2 FS20 ST4 Funksteckdose

pejonp

#110
Hallo Sidey,

wenn ich jetzt ein Update wie im Wiki: http://www.fhemwiki.de/wiki/SIGNALDuino  beschrieben durchführen möchte, erhalte ich folgende Fehlermeldung.

Aufruf:
update force https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-rawIn/controls_signalduino.txt

Fehler:
UPD FHEM/00_SIGNALduino.pm
Got 70099 bytes for FHEM/00_SIGNALduino.pm, not 72244 as expected,
aborting.

Wenn ich ein Update über: update force https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-cresta/controls_signalduino.txt

Kommt diese Meldung:
https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-cresta/FHEM/00_SIGNALduino.pm
: empty file received

es liegt auch kein 00_SIGNALduino.pm in Verzeichnis.

Ein anderes Problem habe ich noch, mit der Hexdatei vom 30.8.2015 werden die Daten vom Bresser TempHygro Sensoren gut erkannt. Bei einer anderen FHEM-Inst habe ich eine Hexdatei vom 3.9.2015 und diese ist auch auf den Nano, damit werden die Daten nicht umgerechnet.

bei der FEHM-Inst HexDatei 30.8.2015 sieht der Log so aus:
2015.09.05 21:32:00 5: SIGNALduino/RAW READ: MU;P0=-544;P1=-6672;P2=919;P3=-1036;P4=430;D=012323204043404040402043404040402320404323402323402043402340234040404020404040432340404040402340404040232323404040/404020432340404040204043400;CP=4
2015.09.05 21:32:00 5: SIGNALduino/RAW READ: MU;P0=-544;P1=-6672;P2=919;P3=-1036;P4=430;D=012323204043404040402043404040402320404323402323402043402340234040404020404040432340404040402340404040232323404040404020432340404040204043400;CP=4/;

2015.09.05 21:32:00 4: SIGNALduino/msg READ: MU;P0=-544;P1=-6672;P2=919;P3=-1036;P4=430;D=012323204043404040402043404040402320404323402323402043402340234040404020404040432340404040402340404040232323404040404020432340404040204043400;CP=4;
2015.09.05 21:32:00 5: SIGNALduino/RAW READ: /MC;LL=-1033;LH=920;SL=-545;SH=4
2015.09.05 21:32:00 5: SIGNALduino/RAW READ: MC;LL=-1033;LH=920;SL=-545;SH=4/32;D=AE0C174A2483E810540F2900;C=
2015.09.05 21:32:00 5: SIGNALduino/RAW READ: MC;LL=-1033;LH=920;SL=-545;SH=432;D=AE0C174A2483E810540F2900;C=/450;

2015.09.05 21:32:00 4: SIGNALduino/msg READ: MC;LL=-1033;LH=920;SL=-545;SH=432;D=AE0C174A2483E810540F2900;C=450;
2015.09.05 21:32:00 5: SIGNALduino/RAW READ: /MC;LL=-1035;LH=919;SL=-546;SH=4
2015.09.05 21:32:00 5: SIGNALduino/RAW READ: MC;LL=-1035;LH=919;SL=-546;SH=4/30;D=AE0C174A4483E810540C1D00;C=
2015.09.05 21:32:00 5: SIGNALduino/RAW READ: MC;LL=-1035;LH=919;SL=-546;SH=430;D=AE0C174A4483E810540C1D00;C=/449;

2015.09.05 21:32:00 4: SIGNALduino/msg READ: MC;LL=-1035;LH=919;SL=-546;SH=430;D=AE0C174A4483E810540C1D00;C=449;
2015.09.05 21:32:00 5: sduino: Cresta protocol converted to hex: (587518BA4A12BE2054305C00) with length (96) bytes

2015.09.05 21:32:00 5: converted Data to (587518BA4A12BE2054305C00)
2015.09.05 21:32:00 5: sduino dispatch 587518BA4A12BE2054305C00
usb_set_debug: Setting debugging level to 1 (on)

bei der andern vom 3.9.3015 so:
2015.09.05 21:32:17 4: SIGNALduino/msg READ: MU;P0=-939;P1=526;P2=-1148;P3=169;P4=-449;P5=1017;P6=1368;D=123434545050541410141414145410141414145054141050145050145410541014501414141454141414105054141414105410141450505014145414101450145414105410141431;CP=1;
2015.09.05 21:32:17 5: SIGNALduino/RAW READ: /MC;LL=-950;LH=1006;SL=-460;SH=5
2015.09.05 21:32:17 5: SIGNALduino/RAW READ: MC;LL=-950;LH=1006;SL=-460;SH=5/17;D=AE0C174A4C83EBEC50;C=507;

2015.09.05 21:32:17 4: SIGNALduino/msg READ: MC;LL=-950;LH=1006;SL=-460;SH=517;D=AE0C174A4C83EBEC50;C=507;
2015.09.05 21:32:17 5: SIGNALduino/RAW READ: /MC;LL=-958;LH=998;SL=-468;SH=51
2015.09.05 21:32:17 5: SIGNALduino/RAW READ: MC;LL=-958;LH=998;SL=-468;SH=51/3;D=AE0C174A4C83EBEC54736C00;C=5
2015.09.05 21:32:17 5: SIGNALduino/RAW READ: MC;LL=-958;LH=998;SL=-468;SH=513;D=AE0C174A4C83EBEC54736C00;C=5/03;

2015.09.05 21:32:17 4: SIGNALduino/msg READ: MC;LL=-958;LH=998;SL=-468;SH=513;D=AE0C174A4C83EBEC54736C00;C=503;

Ob ich genau den Eintrag wie bei der anderen FHEM-Inst getroffen habe weiß ich nicht, es wird aber nicht nach Cresta umgerechnet. Der Sketch vom Signalduino läßt sich auch nicht kompelieren, weil in Zeile 296 u. 305  (//IT ) getState() != searching als Fehler angezeigt wird.


Tschüss Jörg
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

Sidey

Hallo Jörg,

also der Update Befehl von dev-rawin sollte wieder gehen.

Aus dem Cresta Zweig habe ich auch das 0 Byte Problem.
Ich weiss noch nicht, woran es liegt. :(

Die Firmware des Arduino wurde zuletzt am 20.8 aktualisiert. Das ist nicht der Grund.

Problem ist , dass der 2. Arduino die Zeiten nicht so misst, wie dein 1. Arduino.

Ich nehme an, beide laufen mit 16 MHz. Dann muss es am Quarz liegen. Der Unterschied ist schon beträchtlich.
Vielleicht könnte man da was mit einem Umrechnungsfaktor machen.
Den Arduino für 500 MS etwas machen lassen und messen wie viel Zeit das auf dem Server entspricht.

Um auch den Sensor am anderen System zu empfangen müsstest Du für das Cresta Protokoll die Clockrange von 420-450 auf 420-510 ändern.

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

hjgode

Hallo Jörg

ich habe auch keine Probleme mit dem aktuellen dev-cresta branch:
2015.09.06 12:24:52 5: Cmd: >{ Dispatch($defs{sduino}, "587518BA4A12BE2054305C00", undef) }<
2015.09.06 12:24:52 5: sduino dispatch 587518BA4A12BE2054305C00
2015.09.06 12:24:52 4: CRESTA incomming 587518BA4A12BE2054305C00
2015.09.06 12:24:52 4: CRESTA converted to bits: 0111010100011000101110100100101000010010101111100010000001010100001100000101110000000000
2015.09.06 12:24:52 4: bytes arr->7528cede36c260fc50e400
2015.09.06 12:24:52 4: bytes hex->7528cede36c260fc50e400
2015.09.06 12:24:52 4: SensorTyp=30, 222
2015.09.06 12:24:52 4: CRESTA decoded Cresta protocol Typ=30, sensor id=1, channel=1, temp=23.6, humidity=60

2015.09.06 12:24:52 1: Cresta: UNDEFINED sensor 30 detected, code th_30_1
2015.09.06 12:24:52 5: Triggering global (1 changes)
2015.09.06 12:24:52 5: Notify loop for global UNDEFINED th_30_1 Cresta th_30_1
2015.09.06 12:24:52 2: autocreate: define th_30_1 Cresta th_30_1
2015.09.06 12:24:52 5: Triggering global (2 changes)
2015.09.06 12:24:52 2: autocreate: define FileLog_th_30_1 FileLog ./log/th_30_1-%Y.log th_30_1
2015.09.06 12:24:52 5: Triggering global (3 changes)
2015.09.06 12:24:52 5: Triggering global (4 changes)
2015.09.06 12:24:52 4: HTTP FHEMWEB:127.0.0.1:59715 GET /fhem?room=Cresta


Wegen svn: welchen Client benutzt Du? Und welche SVN Adresse?
Mein Debian 8 svn sagt:
hgode@aoa150:~/Documents/perl/dev-cresta$ svn info
Path: .
Working Copy Root Path: /home/hgode/Documents/perl/dev-cresta
URL: https://github.com/RFD-FHEM/RFFHEM/branches/dev-cresta
Relative URL: ^/branches/dev-cresta
Repository Root: https://github.com/RFD-FHEM/RFFHEM
Repository UUID: 2cfc220e-7866-e341-06ff-ce57b7db7bff
Revision: 126
Node Kind: directory
Schedule: normal
Last Changed Author: sidey79
Last Changed Rev: 126
Last Changed Date: 2015-09-06 01:13:15 +0200 (Sun, 06 Sep 2015)


~Josef
Debian SID mit aktuellem FHEM, nanoCUL 866, JeeLink EC3000, fhemduino, SIGNALduino,
3 x TFA TH Sensor, 1 x TFA TH Arduino Sender, 3 x EC3000, 4 x Elro Schaltsteckdosen, ESA2000
offline: Wibo Funkthermostat, 2 x ELV Funkthermostat FHT80, 2 FS20 ST4 Funksteckdose

pejonp

Zitat von: hjgode am 06 September 2015, 12:30:14
...
ich habe auch keine Probleme mit dem aktuellen dev-cresta branch:
..

Hallo Josef,

leider bin ich noch nicht soweit das ich mit gibhub umgehen kann. Ich habe ein Update in FHEM gemacht und nur
update force https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/ dev-rawIn /controls_signalduino.txt durch
update force https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/ dev-cresta /controls_signalduino.txt ersetzt. Da kommt ein Fehler weil kein /00_SIGNALduino.pm im Verzeichnis liegt.

Aber es gibt auch Erfolge:
Auf meinem Banana Pi empfange ich meine beiden Bresser ThermoHygro. Ich habe dort die Clockrange von 420-450 auf 420-510 geändert. Dort hängt auch ein besser 433MHZ Empfänger dran.
Auf meien Odroid-C1 bin ich noch nicht so weit. Im Log sieht man den dekodierten  String, es wird aber nicht 14_Cresta.pm aufgerufen. 

In 14_Cresta.pm habe ich T und H in Zeile 185 ersetzt (github möchet ich nichts kaputt machen)

   readingsBulkUpdate($hash, "humidity", $hum) if ($hum ne "");
   readingsBulkUpdate($hash, "temperature", $temp) if ($temp ne "");

Jörg
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

Sidey

Hallöchen,



Zitat von: pejonp am 06 September 2015, 17:11:48
update force https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/ dev-cresta /controls_signalduino.txt ersetzt. Da kommt ein Fehler weil kein /00_SIGNALduino.pm im Verzeichnis liegt.

Ich werde da leider auch nicht schlau draus.
Die Datei liegt da und hat auch > 0 bytes....


Zitat von: pejonp am 06 September 2015, 17:11:48
Auf meien Odroid-C1 bin ich noch nicht so weit. Im Log sieht man den dekodierten  String, es wird aber nicht 14_Cresta.pm aufgerufen. 

Hast Du das 14_Cresta Modul da auch drauf kopiert?


Zitat von: pejonp am 06 September 2015, 17:11:48
In 14_Cresta.pm habe ich T und H in Zeile 185 ersetzt (github möchet ich nichts kaputt machen)
   readingsBulkUpdate($hash, "humidity", $hum) if ($hum ne "");
   readingsBulkUpdate($hash, "temperature", $temp) if ($temp ne "");


In Github kannst Du nichts kaputt machen. Man kann jede Änderung nachverfolgen und auch wieder rückgängig machen.
So ganz stimmig finde ich die Änderung aber nicht. Das sind ja die einzelnen readings. In meinen restlichen Sensoren, steht da überlichweise
temperature bzw. humidity und channel. Die Kurzfrom T: und H: hat man doch üblicherweise nur im state.



Zu den Fragen der verwendeten Git Clients:

Ich nutze Git v1.95 (Windows) und TortoiseGit.
Zusätzlich verwende ich in eclipse noch egit.

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

hjgode

Hallo Jörg

Zitatleider bin ich noch nicht soweit das ich mit gibhub umgehen kann. Ich habe ein Update in FHEM gemacht und nur
update force https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/ dev-rawIn /controls_signalduino.txt durch
update force https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/ dev-cresta /controls_signalduino.txt ersetzt. Da kommt ein Fehler weil kein /00_SIGNALduino.pm im Verzeichnis liegt.

Ich würde ein neues Verzeichnis anlegen und dann jeweils:
svn co https://github.com/RFD-FHEM/RFFHEM/branches/dev-cresta dev-cresta
svn co https://github.com/RFD-FHEM/RFFHEM/branches/dev-rawIn dev-rawIn


Nun hast Du zwei unabhängige Branches kopiert.

Ich gehe dann weiter so vor, dass ich die jeweiligen Dateien aus den Branches (Zweigen) in meine FHEM Installation reinkopiere. Ich editiere und teste dann in dieser FHEM Installation direkt. Falls was schief geht un dich gar nicht mehr zurechtkomme, kopiere ich einfach wieder die Dateien aus den Zweigen in die FHEM Installation.
Wenn meine Änderungen OK sind (beobachte ich mit "tail -f /opt/fhem/log/fhem-2015...log") dann kopiere ich die geänderte(n) 'Arbeitsdateie(n)' aus der FHEM Installation in den Zweig zurück und mache dann im Verzeichnis des geönderten Branches ein "svn commit -m "Message Text".
Wenn ich Pech habe, wurde die gleiche Datei zwischenzeitlich von jemand anderem geändert und ich muß sie vorher updaten (svn update). Ich arbeite dann die Änderungen in meine Variante mit ein. Dann mache ich wieder ein Commit.

Gruss

~Josef
Debian SID mit aktuellem FHEM, nanoCUL 866, JeeLink EC3000, fhemduino, SIGNALduino,
3 x TFA TH Sensor, 1 x TFA TH Arduino Sender, 3 x EC3000, 4 x Elro Schaltsteckdosen, ESA2000
offline: Wibo Funkthermostat, 2 x ELV Funkthermostat FHT80, 2 FS20 ST4 Funksteckdose

hjgode

Hallo Jörg und Hallo Sidey

mit dem rawIn Branch stimmt was nicht bei Github. Er wird im Web als vorhandener Branch angezeigt, kann aber nicht ausgecheckt werden:

hgode@aoa150:~/Documents/perl/dev-rawIn$ svn co https://github.com/RFD-FHEM/RFFHEM/branches/dev-rawIn
svn: E235000: In file '/build/subversion-YQDThf/subversion-1.8.10/subversion/libsvn_wc/wc_db.c' line 1721: assertion failed (SVN_IS_VALID_REVNUM(changed_rev))
Aborted
hgode@aoa150:~/Documents/perl/dev-rawIn$ svn co https://github.com/RFD-FHEM/RFFHEM/branches/dev-rawln
svn: E170000: URL 'https://github.com/RFD-FHEM/RFFHEM/branches/dev-rawln' doesn't exist


Dann habe ich mal alles ausgecheckt (den RFFHEM Teil) und kann rawIn nicht finden:


hgode@aoa150:~/Documents/perl/dev-rawIn$ svn co https://github.com/RFD-FHEM/RFFHEM
A    RFFHEM/branches
A    RFFHEM/branches/dev-AS
A    RFFHEM/branches/dev-AS/00_FHEMduino.pm
A    RFFHEM/branches/dev-AS/14_FHEMduino_ARC.pm
A    RFFHEM/branches/dev-AS/14_FHEMduino_AS.pm
A    RFFHEM/branches/dev-AS/14_FHEMduino_DCF77.pm
A    RFFHEM/branches/dev-AS/14_FHEMduino_EZ6.pm
A    RFFHEM/branches/dev-AS/14_FHEMduino_Env.pm
A    RFFHEM/branches/dev-AS/14_FHEMduino_FA20RF.pm
A    RFFHEM/branches/dev-AS/14_FHEMduino_Gas.pm
A    RFFHEM/branches/dev-AS/14_FHEMduino_HX.pm
A    RFFHEM/branches/dev-AS/14_FHEMduino_Oregon.pm
A    RFFHEM/branches/dev-AS/14_FHEMduino_PT2262.pm
A    RFFHEM/branches/dev-AS/14_FHEMduino_TCM.pm
A    RFFHEM/branches/dev-AS/LICENSE
A    RFFHEM/branches/dev-AS/README.md
A    RFFHEM/branches/dev-cresta
A    RFFHEM/branches/dev-cresta/CHANGED
A    RFFHEM/branches/dev-cresta/FHEM
A    RFFHEM/branches/dev-cresta/FHEM/00_SIGNALduino.pm
A    RFFHEM/branches/dev-cresta/FHEM/14_Cresta.pm
A    RFFHEM/branches/dev-cresta/FHEM/14_SIGNALduino_AS.pm
A    RFFHEM/branches/dev-cresta/FHEM/14_SIGNALduino_RSL.pm
A    RFFHEM/branches/dev-cresta/FHEM/14_SIGNALduino_un.pm
A    RFFHEM/branches/dev-cresta/FHEM/firmware
A    RFFHEM/branches/dev-cresta/FHEM/firmware/SIGNALduino_nano328.hex
A    RFFHEM/branches/dev-cresta/FHEM/firmware/SIGNALduino_promini328.hex
A    RFFHEM/branches/dev-cresta/FHEM/firmware/SIGNALduino_uno.hex
A    RFFHEM/branches/dev-cresta/LICENSE
A    RFFHEM/branches/dev-cresta/README.md
A    RFFHEM/branches/dev-cresta/controls_signalduino.txt
A    RFFHEM/branches/dev-tcm97001
A    RFFHEM/branches/dev-tcm97001/00_FHEMduino.pm
A    RFFHEM/branches/dev-tcm97001/14_FHEMduino_ARC.pm
A    RFFHEM/branches/dev-tcm97001/14_FHEMduino_AS.pm
A    RFFHEM/branches/dev-tcm97001/14_FHEMduino_DCF77.pm
A    RFFHEM/branches/dev-tcm97001/14_FHEMduino_EZ6.pm
A    RFFHEM/branches/dev-tcm97001/14_FHEMduino_Env.pm
A    RFFHEM/branches/dev-tcm97001/14_FHEMduino_FA20RF.pm
A    RFFHEM/branches/dev-tcm97001/14_FHEMduino_Gas.pm
A    RFFHEM/branches/dev-tcm97001/14_FHEMduino_HX.pm
A    RFFHEM/branches/dev-tcm97001/14_FHEMduino_Oregon.pm
A    RFFHEM/branches/dev-tcm97001/14_FHEMduino_PT2262.pm
A    RFFHEM/branches/dev-tcm97001/14_FHEMduino_TCM.pm
A    RFFHEM/branches/dev-tcm97001/LICENSE
A    RFFHEM/branches/dev-tcm97001/README.md
A    RFFHEM/branches/master
A    RFFHEM/branches/master/00_FHEMduino.pm
A    RFFHEM/branches/master/14_FHEMduino_ARC.pm
A    RFFHEM/branches/master/14_FHEMduino_AS.pm
A    RFFHEM/branches/master/14_FHEMduino_DCF77.pm
A    RFFHEM/branches/master/14_FHEMduino_EZ6.pm
A    RFFHEM/branches/master/14_FHEMduino_Env.pm
A    RFFHEM/branches/master/14_FHEMduino_FA20RF.pm
A    RFFHEM/branches/master/14_FHEMduino_Gas.pm
A    RFFHEM/branches/master/14_FHEMduino_HX.pm
A    RFFHEM/branches/master/14_FHEMduino_Oregon.pm
A    RFFHEM/branches/master/14_FHEMduino_PT2262.pm
A    RFFHEM/branches/master/14_FHEMduino_TCM.pm
A    RFFHEM/branches/master/LICENSE
A    RFFHEM/branches/master/README.md
A    RFFHEM/branches/test
A    RFFHEM/branches/test/CHANGED
A    RFFHEM/branches/test/FHEM
A    RFFHEM/branches/test/FHEM/00_SIGNALduino.pm
A    RFFHEM/branches/test/FHEM/14_Cresta.pm
A    RFFHEM/branches/test/FHEM/14_SIGNALduino_AS.pm
A    RFFHEM/branches/test/FHEM/14_SIGNALduino_RSL.pm
A    RFFHEM/branches/test/FHEM/14_SIGNALduino_un.pm
A    RFFHEM/branches/test/FHEM/firmware
A    RFFHEM/branches/test/FHEM/firmware/SIGNALduino_nano328.hex
A    RFFHEM/branches/test/FHEM/firmware/SIGNALduino_promini328.hex
A    RFFHEM/branches/test/FHEM/firmware/SIGNALduino_uno.hex
A    RFFHEM/branches/test/LICENSE
A    RFFHEM/branches/test/README.md
A    RFFHEM/branches/test/controls_signalduino.txt
A    RFFHEM/tags
A    RFFHEM/tags/2.5.0
A    RFFHEM/tags/2.5.0/00_FHEMduino.pm
A    RFFHEM/tags/2.5.0/14_FHEMduino_ARC.pm
A    RFFHEM/tags/2.5.0/14_FHEMduino_AS.pm
A    RFFHEM/tags/2.5.0/14_FHEMduino_DCF77.pm
A    RFFHEM/tags/2.5.0/14_FHEMduino_EZ6.pm
A    RFFHEM/tags/2.5.0/14_FHEMduino_Env.pm
A    RFFHEM/tags/2.5.0/14_FHEMduino_FA20RF.pm
A    RFFHEM/tags/2.5.0/14_FHEMduino_Gas.pm
A    RFFHEM/tags/2.5.0/14_FHEMduino_HX.pm
A    RFFHEM/tags/2.5.0/14_FHEMduino_Oregon.pm
A    RFFHEM/tags/2.5.0/14_FHEMduino_PT2262.pm
A    RFFHEM/tags/2.5.0/14_FHEMduino_TCM.pm
A    RFFHEM/tags/2.5.0/LICENSE
A    RFFHEM/tags/2.5.0/README.md
A    RFFHEM/trunk
A    RFFHEM/trunk/CHANGED
A    RFFHEM/trunk/FHEM
A    RFFHEM/trunk/FHEM/00_SIGNALduino.pm
A    RFFHEM/trunk/FHEM/14_SIGNALduino_AS.pm
A    RFFHEM/trunk/FHEM/14_SIGNALduino_RSL.pm
A    RFFHEM/trunk/FHEM/14_SIGNALduino_un.pm
A    RFFHEM/trunk/FHEM/firmware
A    RFFHEM/trunk/FHEM/firmware/SIGNALduino_nano328.hex
A    RFFHEM/trunk/FHEM/firmware/SIGNALduino_promini328.hex
A    RFFHEM/trunk/FHEM/firmware/SIGNALduino_uno.hex
A    RFFHEM/trunk/LICENSE
A    RFFHEM/trunk/README.md
A    RFFHEM/trunk/controls_signalduino.txt
Checked out revision 132.


Auch nicht im RFFHEM/SIGNALduino Zweig.

Vielleicht checkt Sidey diese rawIn nochmals komplett neu ein.

~josef
Debian SID mit aktuellem FHEM, nanoCUL 866, JeeLink EC3000, fhemduino, SIGNALduino,
3 x TFA TH Sensor, 1 x TFA TH Arduino Sender, 3 x EC3000, 4 x Elro Schaltsteckdosen, ESA2000
offline: Wibo Funkthermostat, 2 x ELV Funkthermostat FHT80, 2 FS20 ST4 Funksteckdose

hjgode

Hallo nochmal

da bin ich wohl an der Frage vorbeigeschrammt. Ihr sprecht je gar nicht von svn sondern von der update-Funktion in FHEM.

Also ich bekomme in FHEM bei

update force https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-rawIn/controls_signalduino.txt

in FHEM folgenden Fehler:

Got remote controlfile with 10 entries.
MKDIR ./restoreDir/2015-09-07
UPD FHEM/00_SIGNALduino.pm
MKDIR ./restoreDir/2015-09-07/FHEM
open ./FHEM/00_SIGNALduino.pm failed: Permission denied, trying to restore the previous version and aborting the update


und in FHEM bei der Eingabe von
update force https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-cresta/controls_signalduino.txt

folgende Ausgabe:
Got remote controlfile with 8 entries.
UPD FHEM/14_SIGNALduino_AS.pm

https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-cresta/FHEM/14_SIGNALduino_AS.pm
: empty file received


Wenn ich "https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-cresta/FHEM/14_SIGNALduino_AS.pm" im Webbrowser als URL eingebe, bekomme ich den Inhalt von "14_SIGNALduino_AS.pm" im Browser angezeigt.

Im FHEM log File sieht das so aus:
Für dev-rawIn:
2015.09.07 07:01:08 4: HTTP FHEMWEB:127.0.0.1:60370 GET /fhem&cmd=update+force+https%3A%2F%2Fraw.githubusercontent.com%2FRFD-FHEM%2FRFFHEM%2Fdev-rawIn%2Fcontrols_signalduino.txt
2015.09.07 07:01:08 5: Cmd: >update force https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-rawIn/controls_signalduino.txt<
2015.09.07 07:01:08 5: Loading ./FHEM/98_update.pm
2015.09.07 07:01:08 4: HttpUtils url=https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-rawIn/controls_signalduino.txt
2015.09.07 07:01:09 4: https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-rawIn/controls_signalduino.txt: HTTP response code 200
2015.09.07 07:01:09 4: HttpUtils https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-rawIn/controls_signalduino.txt: Got data, length: 639
2015.09.07 07:01:09 4: Got remote controlfile with 10 entries.
2015.09.07 07:01:09 4: MKDIR ./restoreDir/2015-09-07
2015.09.07 07:01:09 4: HttpUtils url=https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-rawIn/CHANGED
2015.09.07 07:01:10 4: https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-rawIn/CHANGED: HTTP response code 200
2015.09.07 07:01:10 4: HttpUtils https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-rawIn/CHANGED: Got data, length: 2890
2015.09.07 07:01:10 1: UPD FHEM/00_SIGNALduino.pm
2015.09.07 07:01:10 4: HttpUtils url=https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-rawIn/FHEM/00_SIGNALduino.pm
2015.09.07 07:01:11 4: https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-rawIn/FHEM/00_SIGNALduino.pm: HTTP response code 200
2015.09.07 07:01:11 4: HttpUtils https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-rawIn/FHEM/00_SIGNALduino.pm: Got data, length: 70099
2015.09.07 07:01:11 4: MKDIR ./restoreDir/2015-09-07/FHEM
2015.09.07 07:01:11 1: open ./FHEM/00_SIGNALduino.pm failed: Permission denied, trying to restore the previous version and aborting the update
2015.09.07 07:01:11 4: 11197:FHEMWEB:127.0.0.1:60370: /fhem&cmd=update+force+https%3A%2F%2Fraw.githubusercontent.com%2FRFD-FHEM%2FRFFHEM%2Fdev-rawIn%2Fcontrols_signalduino.txt / RL:1124 / text/html; charset=UTF-8 / Content-Encoding: gzip
/

Für dev-cresta:
2015.09.07 07:04:28 4: HTTP FHEMWEB:127.0.0.1:60371 GET /fhem&cmd=update+force+https%3A%2F%2Fraw.githubusercontent.com%2FRFD-FHEM%2FRFFHEM%2Fdev-cresta%2Fcontrols_signalduino.txt
2015.09.07 07:04:28 5: Cmd: >update force https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-cresta/controls_signalduino.txt<
2015.09.07 07:04:28 4: HttpUtils url=https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-cresta/controls_signalduino.txt
2015.09.07 07:04:28 4: https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-cresta/controls_signalduino.txt: HTTP response code 200
2015.09.07 07:04:28 4: HttpUtils https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-cresta/controls_signalduino.txt: Got data, length: 497
2015.09.07 07:04:28 4: Got remote controlfile with 8 entries.
2015.09.07 07:04:28 4: HttpUtils url=https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-cresta/CHANGED
2015.09.07 07:04:29 4: https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-cresta/CHANGED: HTTP response code 200
2015.09.07 07:04:29 4: HttpUtils https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-cresta/CHANGED: Got data, length: 2890
2015.09.07 07:04:29 1: UPD FHEM/14_SIGNALduino_AS.pm
2015.09.07 07:04:29 4: HttpUtils url=https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-cresta/FHEM/14_SIGNALduino_AS.pm
: HTTP response code 400ttps://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-cresta/FHEM/14_SIGNALduino_AS.pm
2015.09.07 07:04:29 4: HttpUtils https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-cresta/FHEM/14_SIGNALduin: Got data, length: 0
2015.09.07 07:04:29 4: HttpUtils https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-cresta/FHEM/14_SIGNALduin: Zero length data, header follows:
: empty file received: https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-cresta/FHEM/14_SIGNALduino_AS.pm
2015.09.07 07:04:29 4: 11197:FHEMWEB:127.0.0.1:60371: /fhem&cmd=update+force+https%3A%2F%2Fraw.githubusercontent.com%2FRFD-FHEM%2FRFFHEM%2Fdev-cresta%2Fcontrols_signalduino.txt / RL:1096 / text/html; charset=UTF-8 / Content-Encoding: gzip
/


Nachdem ich die Rechte im /opt/fhem Verzeichnis und darunter korrigiert habe (alles wieder fhem:dialout), geht ein

update force https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-cresta/controls_signalduino.txt
wieder:
Got remote controlfile with 10 entries.
UPD FHEM/00_SIGNALduino.pm
UPD FHEM/14_SIGNALduino_AS.pm
UPD FHEM/14_SIGNALduino_RSL.pm
UPD FHEM/firmware/SIGNALduino_nano328.hex
UPD FHEM/firmware/SIGNALduino_promini328.hex
UPD FHEM/firmware/SIGNALduino_uno.hex
UPD FHEM/14_SIGNALduino_un.pm
...

und auch
update force https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-rawIn/controls_signalduino.txt
funktioniert dann wieder ohne Probleme:
Got remote controlfile with 10 entries.
UPD FHEM/00_SIGNALduino.pm
UPD FHEM/14_SIGNALduino_AS.pm
UPD FHEM/14_SIGNALduino_RSL.pm
UPD FHEM/firmware/SIGNALduino_nano328.hex
UPD FHEM/firmware/SIGNALduino_promini328.hex
UPD FHEM/firmware/SIGNALduino_uno.hex
UPD FHEM/14_SIGNALduino_un.pm


Wenn ich dann aber wieder ein "update force https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-cresta/controls_signalduino.txt" absetze bekomme ich:
Got remote controlfile with 8 entries.
UPD FHEM/14_SIGNALduino_AS.pm

https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-cresta/FHEM/14_SIGNALduino_AS.pm
: empty file received


Uuuups!

Jetzt weiss ich auch nicht weiter. Erst geht es und dann nicht mehr. Die Datei ist im Browser ladbar.

~josef
Debian SID mit aktuellem FHEM, nanoCUL 866, JeeLink EC3000, fhemduino, SIGNALduino,
3 x TFA TH Sensor, 1 x TFA TH Arduino Sender, 3 x EC3000, 4 x Elro Schaltsteckdosen, ESA2000
offline: Wibo Funkthermostat, 2 x ELV Funkthermostat FHT80, 2 FS20 ST4 Funksteckdose

Sidey

Hi Josef,

deine Tests sind interessant.
Ich habe bei mir mal die Dateien vor dem Update gelöscht.
Klappt aber trotzdem nicht.

Die Rechte waren bei mir richtig gesetzt.

Ich habe im Development Forum das Problem gestern geschildert.
Immerhin sind wir zu 3. mit dem Problem.

Irgendwas passiert da in httputils was nicht stimmig ist.
Wenn es bei die 1* funktioniert hat, dann ist die controls Datei ja auch okay.

Grüße Sven
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

hjgode

Der Fehler liegt in den Zeilenenden unter Unix contra Windows:

Debug "update force https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-cresta/controls_signalduino.txt"

Zeile 135 in 98_update.pm

  my @remList = split("\n", $remCtrlFile);
  uLog 4, "Got remote controlfile with ".int(@remList)." entries.";
 
führt zu:
@remList   [ 'UPD 2015_31_08_22:41:00 11496   FHEM/14_SIGNALduino_AS.pm\r', 'UPD 2015_13_04_21:21:00 7779    FHEM/14_SIGNALduino_RSL.pm\r', '...   

$url   'https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-cresta/FHEM/14_SIGNALduino_AS.pm\r'   

Wenn man das
https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-cresta/FHEM/14_SIGNALduino_AS.pm\r
in einem Browser eingibt bekommt man die Datei nicht.
Die '\r' stören nicht, solange die nicht in der URL landen:

Zeile 240:
    my $remFile = upd_getUrl("$basePath/$fName");
   
und in Zeile 383 dann
  my ($err, $data) = HttpUtils_BlockingGet(\%upd_connecthash);
   
Abhilfe:
1
   Die controls_...txt Datei mit Unix Zeilendenden speichern. Also nur mit '\n' am Ende der Zeilen!
2
   vor Zeile 98_update.pm:240 $fname um eventuelles '\r' reduzieren.

Ich habe mal Lösung 1 genommen. Also die Datei https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-cresta/controls_signalduino.txt heruntergelanden (svn update). Mit einem Editor geladen und als Unix Datei abgespeichert. Dann wieder mit 'svn commit' hochgeladen.
Anschließend in meiner FHEM Installation gestestet und diesmal funktioniert es.

Auf den Branch rawIn habe ich keine Schreibzugriff. Möglicherweise besteht da derselbe Fehler in der controls...txt.

Gruss

~Josef
Debian SID mit aktuellem FHEM, nanoCUL 866, JeeLink EC3000, fhemduino, SIGNALduino,
3 x TFA TH Sensor, 1 x TFA TH Arduino Sender, 3 x EC3000, 4 x Elro Schaltsteckdosen, ESA2000
offline: Wibo Funkthermostat, 2 x ELV Funkthermostat FHT80, 2 FS20 ST4 Funksteckdose