Neues Modul: ELV MobileAlerts

Begonnen von MarkusF, 01 November 2017, 16:39:11

Vorheriges Thema - Nächstes Thema

roemmic9

Vielen Dank für deine Erweiterung Markus.
Ich habe damit bereits drei Mobile Alerts Sensoren erfolgreich eingebunden.

Ich hab aber noch einen unbekannten Sensortyp, den Luftgütemonitor WL2000 von Technoline. (Die ID des Sensors fängt mit 05 an.)
Der liefert die Innentemperatur, die Luftfeuchte Innen, eine Angabe für die Luftgüte in PPM (co2 äquivalent). Des Weiteren verfügt der Luftgütemonitor über einen Außensensor, der Temperatur misst.

Ein Beispiel für eine empfangene lastMsg ist "da5a50e9eb1e[ID]1f37404180d70a330009404500d20a34000917000000000000000000000000000000000000000000000000000000000000000036"

Die Temperaur des Außensenders (6,5°C) wird korrekt dekodiert, aber als Innentemperatur angezeigt.

Die Werte für die Innentemperatur 21,5°C, Luftfeuchte Innen (51%) und CO2 äquivalent (450ppm) werden nicht dekodiert.

Eine Dokumentation liegt im Github zu diesem Sensor leider nicht vor, ich hab aber mal versucht herauszufinden, welche Angaben wie kodiert sind:

Bytes 0 und 1 sind mit Sicherheit der transmission counter,
Bytes 2 und 3 sind die Außentemperatur in 1/10 °C
Bytes 4 und 5 sind die Innentemperatur in 1/10 °C
Bytes 6 und 7 sind die Luftfeuchte Innen (ohne Nachkommastellen)
Bytes 8 und 9 CO2 Äquivalent in 1/50 PPM (die 450 ppm werden also als 9 kodiert)
Bytes 10 und 11 Außentemperatur vorher
Bytes 12 und 13 Innentemperatur vorher
Bytes 14 und 15 Luftfeuchte innen vorher

Wie bei den anderen Sensoren in der Dokumentation werden jeweils nur die letzten Bits eines Words verwendet.

Über eine Aufnahme des Sensors in deine Erweiterung würde ich mich sehr freuen.

Viele Grüße,
Michael

MarkusF

Hallo Michael (roemmic9),

danke für die Informationen und die Analyse soweit. Damit war das Einbinden des WL2000 leicht. Es sollte dann morgen irgendwann im normalen fhem "update" sein. Für Ungeduldige: update all https://markusfeist.github.io/FhemMobileAlerts/repository/master/controls_mobilealerts.txt.

Hallo Michael,
wegen dem stateFormat. An sich habe ich in meinem Modul dort gar nichts programmiert  ;). Es nutzt dort die normalen fhem Funktionen. Allerdings da ich dort nichts gefunden habe, was das auslösen kann, will ich es bei mir nachstellen.
Allerdings wenn ich bei mir folgendes im stateFormat setze:
"GW_001D8C0E1EEF_lastSeen | GW_001D8C0E1EEF_proxy"
kommt als STATE raus:
"2018-01-07 17:26:19 | on"
Deine Schilderung würde  aber ein Ergebnis "on" im State bedeuten.
Kannst du mir daher ein "list" vom Gateway schicken, also die Ausgabe von "list <Gatewayname>", wenn das stateFormat gesetzt ist.

Viele Grüße
Markus

Michael

#77
Moin MarkusF

Internals:
   CFGFN      /opt/fhem/cfg/MobileAlert.cfg
   DEF        8085
   FD         13
   NAME       MobileAlertsGateway
   NR         582
   PORT       8085
   STATE      &nbsp; on | 2018-01-08 13:56:47
   TYPE       MOBILEALERTSGW
   READINGS:
     2018-01-04 16:21:55   GW_001D8C0EF7D9_config 0003001d8c0ef7d900ba00c0a8b20501c0a8b205ffffff00c0a8b2014d4f42494c45414c455254532d47617465776179007777772e646174613139392e636f6d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013139322e3136382e3137382e33000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f95c0a8b201
     2018-01-04 13:45:29   GW_001D8C0EF7D9_ip 192.168.178.5
     2018-01-08 13:56:47   GW_001D8C0EF7D9_lastSeen 2018-01-08 13:56:47
     2018-01-04 13:45:29   GW_001D8C0EF7D9_proxy on
     2018-01-04 13:45:29   GW_001D8C0EF7D9_proxyname 192.168.178.3
     2018-01-04 13:45:29   GW_001D8C0EF7D9_proxyport 8085
     2018-01-04 13:51:06   GW_001D8C0EF7D9_serial 800EF7D9
     2018-01-04 13:45:29   Gateways        001D8C0EF7D9
Attributes:
   forward    1
   group      SystemTelemetrie
   room       System
   stateFormat &nbsp; GW_001D8C0EF7D9_proxy | GW_001D8C0EF7D9_lastSeen


Bitte schön, Gerne
Habe stateFormat der Optik  :) wegen umgetauscht, das Spielt aber keine Rolle.
Gruß, Michael

FHEM 6.0 auf RPi 3
CUL V3 868 Mhz | JeeLink LaCrosse & PCA301 | CCU3
BMP085(180) | 14x TX29DTH-IT | 5x PCA 301 | SMA Peripheries | MobileAlerts MA-10(100,120PRO,200,251,410,650,660,800) | HM IP

MarkusF

Hallo Michael,

habe die Stelle gefunden. Es betrifft quasi jedes State (egal von welchen Modul), dass ein Blank beinhaltet und dessen Inhalt mit einem Wert für ein Icon beginnt.
(Deswegen konnte ich es auch nicht nachstellen, ich hatte es mit "GW_001D8C0EF7D9_lastSeen | GW_001D8C0EF7D9_proxy" probiert. Der "Fehler" tritt aber nur bei "GW_001D8C0EF7D9_proxy | GW_001D8C0EF7D9_lastSeen" auf.)
Die Ursache ist in der 01_FHEMWEB.pm in der Funktion "sub FW_dev2image($;$)". Dort wird bei der Suche nach dem Icon in Zeile 2701  der Befehl:
$state =~ s/ .*//; # Want to be able to have icons for "on-for-timer xxx"
aufgeführt. Im Prinzip heißt es für die Iconsuche, ignoriere alles nach dem ersten Blank. Also aus "on | 2018-01-08 13:56:47" wird "on". Deswegen klappt "&nbsp; GW_001D8C0EF7D9_proxy | GW_001D8C0EF7D9_lastSeen" ein Icon "&nbsp;" gibt es nicht. Dem Kommentar nach ist es sogar Absicht.

Ich würde vorschlagen es einfach mit "GW_001D8C0EF7D9_proxy&nbsp;|&nbsp;GW_001D8C0EF7D9_lastSeen" zu machen oder devStateIcon mit ".*:gibtsnicht" oder was ähnlichen zu belegen. Das erste führt dazu, das nach "on&nbsp;..." gesucht wird und das zweite, dass nach einem Icon "gibtsnicht" gesucht wird. Wenn kein Icon gefunden wird, wird einfach der Text angezeigt.

Viele Grüße
Markus

roemmic9

Hallo Markus,

vielen Dank für die Integration des WL2000. Es funktioniert alles prima.

Gruß,
Michael

raimundl

Hallo Markus!

Nur der Vollständigkeit halber:

Auch der Sensor MA10101 (Kabeltemperatursensor) funktioniert tadellos. Wird als MA 10100 ausgewiesen.

Danke und LG
Homematic: Licht, Heizung, Alarm, Alexa ... auf einen RaspberryPi3+mit OS "Stretch" und RPI-RF-MOD mit piVCCU3 (HMCCU), ca. 40 HM Komponenten, alexa, MobileAlerts, Hue Ledstripes....

MarkusF

Danke für die Info. Ich habe gerade die Dokumentation und das Reading DeviceType geupdated. Allerdings lade ich das erst mit der nächsten Änderung mit hoch. (Klappt ja auch ohne Anpassung.)

Viele Grüße
Markus

Michael

Moin MarkusF

Ich habe einen Wunsch wenn möglich.

Kannst du beim Windmesser MA10660
den Dezimalwert für die Windrichtung
in ein Reading mit zu Verfügung stellen.
Gruß, Michael

FHEM 6.0 auf RPi 3
CUL V3 868 Mhz | JeeLink LaCrosse & PCA301 | CCU3
BMP085(180) | 14x TX29DTH-IT | 5x PCA 301 | SMA Peripheries | MobileAlerts MA-10(100,120PRO,200,251,410,650,660,800) | HM IP

MarkusF

Hallo Michael,

kein Problem. Ich habe es gerade ins svn hochgespielt (hatte noch ein paar andere kleine Änderungen). Der neue Wert heißt directionInt. Es sollte morgen irgendwann per update verfügbar sein. Eine neugierige Frage muss ich aber stellen, was ist der Anwendungsfall.

Viele Grüße
Markus

Michael

Moin MarkusF

Vielen Dank für die schnelle Unsetzung.

ZitatEine neugierige Frage muss ich aber stellen, was ist der Anwendungsfall.
Ich hatte unter Fhem versucht, eine nach meinen Wünschen Oberfläche auf mein Tablet zu Zaubern  :).
Nun versuche ich es mit ioBroker und das Widget für die Windrichtung verlangt einen Zahlenwert.
Gruß, Michael

FHEM 6.0 auf RPi 3
CUL V3 868 Mhz | JeeLink LaCrosse & PCA301 | CCU3
BMP085(180) | 14x TX29DTH-IT | 5x PCA 301 | SMA Peripheries | MobileAlerts MA-10(100,120PRO,200,251,410,650,660,800) | HM IP

Michael

Hallo MarkusF

Bin mir nicht ganz Sicher.  :-[

Stimmt denn der directionInt Wert?

sh Anlage
Gruß, Michael

FHEM 6.0 auf RPi 3
CUL V3 868 Mhz | JeeLink LaCrosse & PCA301 | CCU3
BMP085(180) | 14x TX29DTH-IT | 5x PCA 301 | SMA Peripheries | MobileAlerts MA-10(100,120PRO,200,251,410,650,660,800) | HM IP

RoBra81

Zitat von: Michael am 07 Februar 2018, 07:17:54
Moin MarkusF

Vielen Dank für die schnelle Unsetzung.
Ich hatte unter Fhem versucht, eine nach meinen Wünschen Oberfläche auf mein Tablet zu Zaubern  :).
Nun versuche ich es mit ioBroker und das Widget für die Windrichtung verlangt einen Zahlenwert.
Du musst directionInt nehmen und mit 22.5 (glaube ich) multiplizieren...

Gesendet von meinem SM-G935F mit Tapatalk


Michael

#87
Moin RoBra81

ZitatDu musst directionInt nehmen und mit 22.5 (glaube ich) multiplizieren...
Das stimmt, habe Ich jetzt auch mit einem userReading (directionDegree) umgesetzt.

In meinem Wunsch vom 06.Feb.2018 hatte ich mich Falsch ausgedrückt.
Hatte eigendlich die Gradzahl gemeint.
Ist mein Fehler.
Sorry!
Gruß, Michael

FHEM 6.0 auf RPi 3
CUL V3 868 Mhz | JeeLink LaCrosse & PCA301 | CCU3
BMP085(180) | 14x TX29DTH-IT | 5x PCA 301 | SMA Peripheries | MobileAlerts MA-10(100,120PRO,200,251,410,650,660,800) | HM IP

MarkusF

Hallo,

stimmt directionInt ist quasi der direkte Zahlenwert vom Sensor (0 = N, 1 = NNO, 2 = NO, 3 = ONO, 4 = O, ..., 12 = W, 13 = WNW, 14 = NW, 15 = NNW). Im Prinzip alle 22,5 Grad plus eins. Wenns mit userReading klappt, würde ich es dann so lassen.

Viele Grüße
Markus

marko67

Hallo guten Morgen,

wie auf Seite 2 dieses Posts habe ich bei dem Anlegen ebenfalls Probleme mit dem Modul.
Ich habe mit update 50_MOBILEALERTSGW.pm und update 51_MOBILEALERTS.pm die Module in FHEM geladen und einen Neustart gemacht. In der App habe ich den Proxy aktiviert und ihm den Port 8006 zugewiesen. Danach einen Neustart des GW durchgeführt. Die grüne LED blinkt dauerhaft ab und zu die rote. Es werden seit dem aktivieren des Proxy keine Daten mehr an die App gesendet. Nach dem Anlegen in FHEM erhalte ich nun folgenden Fehler:

2018.05.10 09:02:22 1: PERL WARNING: Subroutine MOBILEALERTSGW_Initialize redefined at ./FHEM/50_MOBILEALERTSGW.pm line 20.
2018.05.10 09:02:22 1: PERL WARNING: Subroutine MOBILEALERTSGW_Define redefined at ./FHEM/50_MOBILEALERTSGW.pm line 41.
2018.05.10 09:02:22 1: PERL WARNING: Subroutine MOBILEALERTSGW_GetUDPSocket redefined at ./FHEM/50_MOBILEALERTSGW.pm line 52.
2018.05.10 09:02:22 1: PERL WARNING: Subroutine MOBILEALERTSGW_Get redefined at ./FHEM/50_MOBILEALERTSGW.pm line 89.
2018.05.10 09:02:22 1: PERL WARNING: Subroutine MOBILEALERTSGW_Set redefined at ./FHEM/50_MOBILEALERTSGW.pm line 145.
2018.05.10 09:02:22 1: PERL WARNING: Subroutine MOBILEALERTSGW_Undef redefined at ./FHEM/50_MOBILEALERTSGW.pm line 264.
2018.05.10 09:02:22 1: PERL WARNING: Subroutine MOBILEALERTSGW_Attr redefined at ./FHEM/50_MOBILEALERTSGW.pm line 280.
2018.05.10 09:02:22 1: PERL WARNING: Subroutine MOBILEALERTSGW_Fingerprint redefined at ./FHEM/50_MOBILEALERTSGW.pm line 295.
2018.05.10 09:02:22 1: PERL WARNING: Subroutine MOBILEALERTSGW_Write redefined at ./FHEM/50_MOBILEALERTSGW.pm line 303.
2018.05.10 09:02:22 1: PERL WARNING: Subroutine MOBILEALERTSGW_Read redefined at ./FHEM/50_MOBILEALERTSGW.pm line 312.
2018.05.10 09:02:22 1: PERL WARNING: Subroutine MOBILEALERTSGW_NonblockingGet_Callback redefined at ./FHEM/50_MOBILEALERTSGW.pm line 495.
2018.05.10 09:02:22 1: reload: Error:Modul 50_MOBILEALERTSGW deactivated:
Too many arguments for main::TcpServer_Close at ./FHEM/50_MOBILEALERTSGW.pm line 530, near "1 )"

2018.05.10 09:02:22 0: Too many arguments for main::TcpServer_Close at ./FHEM/50_MOBILEALERTSGW.pm line 530, near "1 )"

2018.05.10 09:04:09 1: reload: Error:Modul 50_MOBILEALERTSGW deactivated:
Too many arguments for main::TcpServer_Close at ./FHEM/50_MOBILEALERTSGW.pm line 530, near "1 )"

2018.05.10 09:04:09 0: Too many arguments for main::TcpServer_Close at ./FHEM/50_MOBILEALERTSGW.pm line 530, near "1 )"


Kann mir jemand mit diesem Fehler helfen?

Viele Grüße Marko