FHEM Forum

Verschiedenes => Bastelecke => Thema gestartet von: SabineT am 10 Juni 2017, 15:31:22

Titel: Fehlermeldung von SIGNALduino nach Update
Beitrag von: SabineT am 10 Juni 2017, 15:31:22
Nach einem Update heute streikt 00_SIGNALduino.pm mit folgender Fehlermeldung im fhem.log:
2017.06.10 15:25:44 1: reload: Error:Modul 00_SIGNALduino deactivated:
Experimental keys on scalar is now forbidden at ./FHEM/00_SIGNALduino.pm line 1969, <$fh> line 114.

2017.06.10 15:25:44 0: Experimental keys on scalar is now forbidden at ./FHEM/00_SIGNALduino.pm line 1969, <$fh> line 114.

Ich habe übrigens perl v5.24.1 installiert.

Hab jetzt mal die alte Version aus dem restoreDir zurück kopiert ;)

lg, Sabine
Titel: Antw:Fehlermeldung von SIGNALduino nach Update
Beitrag von: Ralf9 am 10 Juni 2017, 17:31:42
Dies ist dann das hier
foreach my $dB (keys $patable{$CC1101Frequency}) {

elsif($cmd eq "ccpatable") {
my $CC1101Frequency = "433";
if (defined($hash->{cc1101_frequency})) {
$CC1101Frequency = $hash->{cc1101_frequency};
}
my $dBn = substr($msg,9,2);
Log3 $name, 3, "$name/msg parseResponse patable: $dBn";
foreach my $dB (keys $patable{$CC1101Frequency}) {
if ($dBn eq $patable{$CC1101Frequency}{$dB}) {
Log3 $name, 5, "$name/msg parseResponse patable: $dB";
$msg .= " => $dB";
last;
}
}
}


Dies erzeugt die folgende Ausgabe:
C3E = 00 C8 00 00 00 00 00 00 => 7_dBm

Ich habe Perl v5.18.1, damit funktioniert es noch.

Hat mir jemand einen Tipp wie ich dies hinbekomme, daß es auch mit perl v5.24.1 funktioniert

Gruß Ralf
Titel: Antw:Fehlermeldung von SIGNALduino nach Update
Beitrag von: dev0 am 10 Juni 2017, 17:45:36
Versuch mal:

foreach my $dB (keys %{ $patable{$CC1101Frequency} }) {
Titel: Antw:Fehlermeldung von SIGNALduino nach Update
Beitrag von: SabineT am 10 Juni 2017, 17:46:22
Irgendwie dürfte sich das update bei mir im Moment generell seltsam verhalten. Die alten Dateien werden ja normal in ein Verzeichnis unterhalb von ./restoreDir gesichert (heute also ./restoreDir/2017-06-10). Beim heutigen Update landet da aber dann 00_SIGNALduino.pm 13215 2017-01-23 20:09:44Z. Im FHEM Verzeichnis ist da aber vorm Update eindeutig eine neuere Version davon! Keine Ahnung, wo da die alte Datei hergeholt wird.
Ich hab jetzt 00_SIGNALduino.pm 10485 2017-05-28 23:00:00Z laufen.
Titel: Antw:Fehlermeldung von SIGNALduino nach Update
Beitrag von: SabineT am 10 Juni 2017, 17:53:03
noch was:

im controls_signalduino.txt hats bei folgender Zeile einen Tippfehler beim Verzeichnis (sollte unused) heissen:
MOV FHEM/14_SIGNALduino_un.pm unsed
Titel: Antw:Fehlermeldung von SIGNALduino nach Update
Beitrag von: SabineT am 10 Juni 2017, 18:10:21
Zitat von: dev0 am 10 Juni 2017, 17:45:36
Versuch mal:

foreach my $dB (keys %{ $patable{$CC1101Frequency} }) {

das bringt bei mir die gleiche Fehlermeldung
Titel: Antw:Fehlermeldung von SIGNALduino nach Update
Beitrag von: dev0 am 10 Juni 2017, 18:12:02
FHEM neu gestartet?
Titel: Antw:Fehlermeldung von SIGNALduino nach Update
Beitrag von: SabineT am 10 Juni 2017, 18:20:59
klar, sonst würd ich ja nicht wieder die Fehlermeldung beim Starten bekommen  ;)
Titel: Antw:Fehlermeldung von SIGNALduino nach Update
Beitrag von: SabineT am 10 Juni 2017, 18:26:56
möglicherweise hatte ich da einen Tippfehler, habs jetzt nochmals mit C&P geändert, jetzt gehts
Titel: Antw:Fehlermeldung von SIGNALduino nach Update
Beitrag von: RaspiLED am 10 Juni 2017, 18:46:05
Hi Ralf,
Hilft Dir das Beispiel hier weiter?
http://mail.pm.org/pipermail/houston/2016-January/002790.html

Ich schätze es liegt am $hash->{cc1101_frequency} oder?

Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Titel: Antw:Fehlermeldung von SIGNALduino nach Update
Beitrag von: SabineT am 10 Juni 2017, 18:52:43
mit                 foreach my $dB (keys %{ $patable{$CC1101Frequency} }) {
                        if ($dBn eq $patable{$CC1101Frequency}{$dB}) {
                                Log3 $name, 5, "$name/msg parseResponse patable: $dB";
                                $msg .= " => $dB";
                                last;
                        }
                }
funktionierts
Titel: Antw:Fehlermeldung von SIGNALduino nach Update
Beitrag von: SabineT am 10 Juni 2017, 19:42:01
Zitat von: SabineT am 10 Juni 2017, 17:46:22
Irgendwie dürfte sich das update bei mir im Moment generell seltsam verhalten. Die alten Dateien werden ja normal in ein Verzeichnis unterhalb von ./restoreDir gesichert (heute also ./restoreDir/2017-06-10). Beim heutigen Update landet da aber dann 00_SIGNALduino.pm 13215 2017-01-23 20:09:44Z. Im FHEM Verzeichnis ist da aber vorm Update eindeutig eine neuere Version davon! Keine Ahnung, wo da die alte Datei hergeholt wird.
Ich hab jetzt 00_SIGNALduino.pm 10485 2017-05-28 23:00:00Z laufen.
ich hab jetzt die Erklärung, warum da eine veraltete Datei im restoreDir landet:

durch controls_fhem.txt wird erst mal die 00_SIGNALduino.pm ins restoreDir gesichert und dann mit der Version vom Jänner überschrieben, controls_signalduino.txt sichert danach diese veraltete Version, überschreibt damit die eigentlich richtige Sicherung und ladet die aktuelle Datei.

@Ralf du solltest vielleicht mal eine aktuelle Version ins offizielle SVN stellen ;)
Titel: Antw:Fehlermeldung von SIGNALduino nach Update
Beitrag von: Ralf9 am 10 Juni 2017, 20:07:30
Der maintainer vom SIGNALduino ist Sidey, ich bin nur Mitentwickler.
Aber Du hast Recht, es ist mal wieder Zeit, daß die aktuelle Version ins offizielle SVN kommt.
Aber das sagen wir so einfach, für Sidey ist damit doch ein gewisser Aufwand verbunden.

Titel: Antw:Fehlermeldung von SIGNALduino nach Update
Beitrag von: SabineT am 10 Juni 2017, 20:14:49
Meiner Meinung nach müsste da Rudi König den Updateprozess generell mal überarbeiten. Also z.B. erst mal alle controls-Files einlesen und jeweils nur den zuletzt gelesenen Eintrag zu einer Datei dann auch anwenden.
Mir ist es auch schon ein paarmal passiert, dass nach einem Update Fehlermeldungen in der fhem.cfg gestanden sind... aber das hat jetzt nix mit SIGNALduino an sich zu tun, ist hier also offtopic ;)
Titel: Antw:Fehlermeldung von SIGNALduino nach Update
Beitrag von: RaspiLED am 10 Juni 2017, 20:39:51
Hi,
Ja stimmt, aber würde es nicht auch reichen erst die Devels zu holen und dann die normalen?
Sollen wir nich mal einen neuen Thread dafür aufmachen, Sabine?

Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Titel: Antw:Fehlermeldung von SIGNALduino nach Update
Beitrag von: SabineT am 10 Juni 2017, 20:56:25
Zitat von: RaspiLED am 10 Juni 2017, 20:39:51
Hi,
Ja stimmt, aber würde es nicht auch reichen erst die Devels zu holen und dann die normalen?
Sollen wir nich mal einen neuen Thread dafür aufmachen, Sabine?

Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Naja, dann wird die eigentlich neuere Version vom Devel durch die alte Version vom SVN überschrieben! Im Moment landet halt eine veraltete Version im restoreDir, aber die richtige im FHEM-Verzeichnis.
Titel: Fehlermeldung von SIGNALduino nach Update
Beitrag von: RaspiLED am 10 Juni 2017, 21:09:46
Nein neuere Dateien werden dich beim Update nicht überschrieben, oder Irre ich mich da etwa?


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Titel: Antw:Fehlermeldung von SIGNALduino nach Update
Beitrag von: dev0 am 10 Juni 2017, 21:14:40
Du irrst Dich.
Titel: Antw:Fehlermeldung von SIGNALduino nach Update
Beitrag von: Happy Fhem User am 11 Juni 2017, 11:17:21
Zitat von: SabineT am 10 Juni 2017, 18:52:43
mit                 foreach my $dB (keys %{ $patable{$CC1101Frequency} }) {
                        if ($dBn eq $patable{$CC1101Frequency}{$dB}) {
                                Log3 $name, 5, "$name/msg parseResponse patable: $dB";
                                $msg .= " => $dB";
                                last;
                        }
                }
funktionierts

Müsste es nicht ganz korrekt:
                foreach my $dB (keys %{ $patable{$CC1101Frequency} }) {
                        if ($dBn eq $patable{$CC1101Frequency}->{$dB}) {
                                Log3 $name, 5, "$name/msg parseResponse patable: $dB";
                                $msg .= " => $dB";
                                last;
                        }
                }

heißen.

$patable{$CC1101Frequency}

sieht nach einem HashRef aus, deshalb die Prüfung im if mit "->".

Oder nen bischen kompakter & schneller(?) - achtung ungetestet:
                while (my ($dB, $dBvalue) = each %{ $patable{$CC1101Frequency} }) {
                        if ($dBn eq $dBvalue) {
                                Log3 $name, 5, "$name/msg parseResponse patable: $dB";
                                $msg .= " => $dB";
                                last;
                        }
                }
Titel: Antw:Fehlermeldung von SIGNALduino nach Update
Beitrag von: SabineT am 11 Juni 2017, 13:19:28
Bei mir ist das Ergebnis gleich, egal ob mit oder ohne "->".

Wenn man allerdings nie die patable gesetzt hat wird scheinbar immer die 433er Tabelle genommen. Bei mir liefert das
ccpatable: C3E = 00 84 00 00 00 00 00 00 => 5_dBm
zurück, obwohl ich 868MHz verwende:
ccconf: freq:868.336MHz bWidth:135KHz rAmpl:42dB sens:8dB (DataRate:5603.79Baud)

Bei den set Kommandos wird auch nur cc1101_patable_433 in der Auswahlliste angeboten! In der Kommandozeile funktioniert aber sehr wohl auch ein "set sduino cc1101_patable_868 x".
Titel: Antw:Fehlermeldung von SIGNALduino nach Update
Beitrag von: RaspiLED am 11 Juni 2017, 13:53:01
Hi Sabine,
Ich glaube man musste erst cc1101_frequency auf 868 setzen.
Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Titel: Antw:Fehlermeldung von SIGNALduino nach Update
Beitrag von: SabineT am 11 Juni 2017, 14:44:34
Zitat von: RaspiLED am 11 Juni 2017, 13:53:01
Hi Sabine,
Ich glaube man musste erst cc1101_frequency auf 868 setzen.
Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
das hatte ich gleich am Anfang gemacht beim Anlegen des SDuinos, sonst würde er ja nicht meine Wetterstation auf 868MHz empfangen. Und ccconf liefert ja auch die richtige Frequenz.

Das Problem ist eher, dass die patable nicht automatisch gesetzt wird. Ich denke, die Firmware am SDuino wird da als Default die 5 dBm bei 433MHz setzen (die Frequenz ist ja auch erst mal auf 433MHz gesetzt). Ist in meinem Fall auch erst mal egal, da ich derzeit ja eh nur empfangen tu.
Komisch ist halt nur, dass das cc1101_patable_868 garnicht in der Auswahlliste für "set" auftaucht.
Titel: Fehlermeldung von SIGNALduino nach Update
Beitrag von: RaspiLED am 11 Juni 2017, 14:53:48
Hi Sabine,
Ich meinte nicht mit
set <dev> freq 868.300
sondern
attr cc101_frequency 868
Danach hatte ich zumindest die richtigen patable Auswahlen.
Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Titel: Antw:Fehlermeldung von SIGNALduino nach Update
Beitrag von: SabineT am 11 Juni 2017, 15:21:27
Zitat von: RaspiLED am 11 Juni 2017, 14:53:48
Hi Sabine,
Ich meinte nicht mit
set <dev> freq 868.300
sondern
attr cc101_frequency 868
Danach hatte ich zumindest die richtigen patable Auswahlen.
Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Ok, auf das Attribute hatte ich gar nicht geschaut bzw. ist es mir nicht bewusst aufgefallen :)
Wäre halt vielleicht sinnvoll, wenn man  ein "set <dev> freq ..." macht, dass dann dieses Attribut automatisch richtig gesetzt wird.
Danke jedenfalls für den Hinweis!
Titel: Antw:Fehlermeldung von SIGNALduino nach Update
Beitrag von: RaspiLED am 11 Juni 2017, 16:01:19
Hi,
I agree [emoji6]
Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...