Autor Thema: Automatisches Anlegen von Readings  (Gelesen 1845 mal)

Offline Sidey

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2442
Automatisches Anlegen von Readings
« am: 23 September 2019, 23:03:40 »

Ich habe bei einer Mysensors Definition Temperaturwerte von child 7 auf das reading temperature gemappt:

attr MYSENSOR_UNO mapReading_temperature 7 temperature
Manchmal muss ich den sensor resetten, da er abschmiert.
Ob es damit 1:1 zuammenhängt weiss ich noch nicht, aber irgendwann bekomme ich keine Werte mehr auf dem Reading temperature, weil Zusätzlich ein mapping auf das reading temperature7 angelegt wird:

attr MYSENSOR_UNO mapReading_temperature7 7 temperature
Krieg ich das der Definition irgendwie abgewöhnt?

Grüße Sidey

Signalduino, HMLan, Raspberry Pi, Mysensors, ESPEasy, HABridge für Echo

Offline HomeAuto_User

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 963
Antw:Automatisches Anlegen von Readings
« Antwort #1 am: 24 September 2019, 06:38:02 »
Moin Moin,
ob es mit deinem Problem zusammenhängt weiß ich nicht aber mir kommt es ähnlich vor, wie der Sachverhalt

- stateformat und ein Leerzeichen an bestimmter Stelle. (Beispiel:  { ReadingsTimestamp($name, "state", 0) ." - ". ReadingsVal($name, "state", "none");} ) Dies erzeugt unter Umständen ebenso ein neues Reading wenn man das Leerzeichen nicht via Unicode definiert weil im „Hintergrund“ dann an einer falschen Stelle getrennt wird.

Versuche mal, das Leerzeichen mit Unicode zu ersetzen.


Gesendet von iPhone mit Tapatalk Pro
"Developer" heißt nicht, das man alles wissen kann!
- FHEM v5.9 | Rasberry PI 3
- radino CC1101 433Mhz (SIGNALduino)| - radino CC1101 868Mhz (CUL) | nano 433Mhz (SIGNALduino) - Sensoren: purer Dschungel querbeet

Offline Beta-User

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 9717
  • eigentlich eher "user" wie "developer"
Antw:Automatisches Anlegen von Readings
« Antwort #2 am: 24 September 2019, 16:07:13 »
Hmm, wird etwas dauern, bis ich mich da unter den Code von Norbert mal drunterlegen kann...

Wenn jemand eine schnelle konkrete Idee hat, was da wo zu ändern ist, um das nebenwirkungsfrei zu beseitigen, wäre ich nicht unglücklich ;) .
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Offline Beta-User

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 9717
  • eigentlich eher "user" wie "developer"
Antw:Automatisches Anlegen von Readings
« Antwort #3 am: 30 September 2019, 15:16:29 »
@HomeAuto_User:
Bezieht sich das mit stateFormat explizit auf MySensors oder ist das eine allgemeine Feststellung?

Ich habe das stateFormat eben mit einer einigermaßen akutellen Testinstallation (strawberryPerl) sowohl an einem MQTT2_DEVICE wie einem MYSENSORS_DEVICE ausgetestet und konnte da keine Probleme feststellen, kann aber auch OS-spezifisch sein.

Aus dem MySensors-Code werde ich da an der Stelle leider nicht schlau bzw. kann keine Auffälligkeiten erkennen; wenn es der "Umbenennungs-Teil" wäre (ReadingFrom Comment), müßte das alte ReadingMapping gelöscht werden, das Verhalten scheint also wenn, dann schon seit Urzeiten so zu sein.

Sonst jemand eine Idee?
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Offline Sidey

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2442
Antw:Automatisches Anlegen von Readings
« Antwort #4 am: 30 September 2019, 22:50:41 »
Durch diesen Programmierstiel blicke ich leider auch nicht durch. Meiner geht leider anders.

Ich hab das Verhalten nachgestellt und kann folgende Logs dazu anbieten:

2019.09.30 22:42:46 4: MYSENSORS_DEVICE MYSENSOR_UNO: ignoring C_SET-message no reading-mapping for childId 7, type temperature

2019.09.30 22:42:46 4: MYSENSORS Read: Rx: fr=228 ci=007 c=001(C_SET         ) st=000(V_TEMP          ) ack=0 '21.50'

2019.09.30 22:42:46 4: MYSENSORS/RAW: /228;7;1;0;0;21.50

Das readingMapping existiert, wird aber wohl nicht gefunden.

Ich hatte mir das im Code auch schon mal angesehen und nicht gefunden, an welcher Stelle
$hash->{readingMappings}mit Inhalt gefüllt wird.

Grüße Sidey
Signalduino, HMLan, Raspberry Pi, Mysensors, ESPEasy, HABridge für Echo

Offline HomeAuto_User

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 963
Antw:Automatisches Anlegen von Readings
« Antwort #5 am: 30 September 2019, 22:52:18 »
@HomeAuto_User:
Bezieht sich das mit stateFormat explizit auf MySensors oder ist das eine allgemeine Feststellung?

Hallo,
meine Aussage bezieht sich auf die allgemeine Feststellung.

Sobald

- stateformat und ein Leerzeichen an bestimmter Stelle. (Beispiel:  { ReadingsTimestamp($name, "state", 0) ." - ". ReadingsVal($name, "state", "none");} ) erzeugt es Umständen ebenso ein neues Reading wenn man das Leerzeichen nicht via Unicode definiert weil im „Hintergrund“ dann an einer falschen Stelle getrennt wird.

Das Verhalten konnte ich nun schon an mindestens 2 Systemen nachvollziehen.


Gesendet von iPad mit Tapatalk Pro
"Developer" heißt nicht, das man alles wissen kann!
- FHEM v5.9 | Rasberry PI 3
- radino CC1101 433Mhz (SIGNALduino)| - radino CC1101 868Mhz (CUL) | nano 433Mhz (SIGNALduino) - Sensoren: purer Dschungel querbeet

Offline Sidey

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2442
Antw:Automatisches Anlegen von Readings
« Antwort #6 am: 30 September 2019, 23:19:49 »
Hi,

ich habe es mal ein bisschen analysiert.
Es fehlt der Eintrag in radingMappings. Ich habe es mit der childID 5 ausprobiert.
Der Eintrag

G_counter fehlt in dem Hash.
Ich habe das attribut neu gesetzt. Danach war der Eintrag vorhanden.

Wieso der Eintrag irgendwann verschwinde habe ich nicht herausgefunden.

'readingMappings' => {
                                 '5' => {
                                          '17' => {
                                                    'name' => 'power5'
                                                  },
                                          '24' => {
                                                    'name' => 'G_counter'
                                                  },
                                          '18' => {
                                                    'name' => 'energy5'
                                                  },
                                          '56' => {
                                                    'name' => 'power_factor5'
                                                  }
                                        }
                               },
Signalduino, HMLan, Raspberry Pi, Mysensors, ESPEasy, HABridge für Echo

Offline Beta-User

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 9717
  • eigentlich eher "user" wie "developer"
Antw:Automatisches Anlegen von Readings
« Antwort #7 am: 04 Oktober 2019, 10:04:12 »
Hallo zusammen,

Danke erst mal für die Rückmeldungen.

Leider habe ich keine Idee, warum die Mappings verloren gehen könnten - der einzige Fall, in dem das Modul das Mapping absichtlich zerstört, ist die Anforderung des Users, die Kommentare auszuwerten (aber auch da müßte nach meinem Codeverständnis auch sowohl eine Nutzeranforderung vorliegen wie auch die Node einen Kommentar senden, damit überhaupt was in die Richtung passiert!). Glaube also kaum, dass das die Ursache ist, kann mich aber täuschen...
Sonst tappe ich echt im Dunkeln, zumal das hier ein Einzelfall zu sein scheint, sorry.

Was die Sache mit dem Leerzeichen angeht, sollte man das Rudi mal mitteilen (er liest hier eher nicht mit), denn das dürfte dann aus fhem.pl kommen (https://svn.fhem.de/trac/browser/trunk/fhem/fhem.pl#L4605).
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

 

decade-submarginal