Neues Modul: ELV MobileAlerts

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

Vorheriges Thema - Nächstes Thema

MarkusF

Der Fehler:
Too many arguments for main::TcpServer_Close at ./FHEM/50_MOBILEALERTSGW.pm line 530, near "1 )"
spricht dafür, dass eine alte TcpServerUtils.pm  (vor irgendwann Juli letzten Jahres) im System ist. (Die andere Möglichkeit, dass sich die TcpServerUtils.pm geändert hat, kann ich ausschließen, da ein vorhin angestoßener CI Lauf von meinem Modul erfolgreich war.) Dies kann man einfach mit update check prüfen. Ich würde dann zu einem generellen
update
ohne Parameter und anschließenden
shutdown restart
raten, da die TcpServerUtils.pm auch von anderen Modulen (ich meine auch fhem Web) genutzt wird und ein update TcpServerUtils.pm zu einem unnutzbaren System führen könnte.

Viele Grüße
Markus

marko67

Zitat von: MarkusF am 11 Mai 2018, 05:58:40
Der Fehler:
Too many arguments for main::TcpServer_Close at ./FHEM/50_MOBILEALERTSGW.pm line 530, near "1 )"
spricht dafür, dass eine alte TcpServerUtils.pm  (vor irgendwann Juli letzten Jahres) im System ist. (Die andere Möglichkeit, dass sich die TcpServerUtils.pm geändert hat, kann ich ausschließen, da ein vorhin angestoßener CI Lauf von meinem Modul erfolgreich war.) Dies kann man einfach mit update check prüfen. Ich würde dann zu einem generellen
update
ohne Parameter und anschließenden
shutdown restart
raten, da die TcpServerUtils.pm auch von anderen Modulen (ich meine auch fhem Web) genutzt wird und ein update TcpServerUtils.pm zu einem unnutzbaren System führen könnte.

Viele Grüße
Markus

Danke für den Hinweis. Es läuft nun wie geplant!
Danke für das Modul und Deine Arbeit.

Marko

ottoplanet

Hallo,

ich habe Probleme das Modul in FHEM einzurichten.
Welchen Port muß ich benutzen??

Mein FHEM läuft unter der IP 192.168.25.4 an Port 8083.

In der Mobilealerts APP wird mir Port 8003 für den Gateway angezeigt. Ist das der Port den ich nehmen muß?

define MobileAlertsGateway MOBILEALERTSGW 8003

Vielleicht kann mir einer bei der Frage helfen.

Danke.

MarkusF

#93
Hallo,
der Port ist egal. Er muss halt auf dem Rechner frei sein und dem Gateway als Proxyserverport mitgeteilt werden. Wenn fhem nicht als root läuft (und man nichts in der Systemkonfiguration ändern will) sollte man keine Nummer kleiner 1024 nehmen.

Die Konfiguration im Gateway erfolgt entweder über die App oder nachdem das Modul eingerichtet ist mit:
get <Modulname> config
set <Modulname> initgateway <Gateway ID aus den Readings>
set <Modulname> rebootgateway <Gateway ID>


Rein technisch macht das Modul nichts anderes wie einen Server auf dem Port zu starten. Daher ist dieser egal, muss halt dann auf dem Gateway gleich sein, damit dieses dann den Server auch anspricht.

Man kann also 8003 nehmen und sollte man hier auch. Es würde  die weitere Konfiguration mit den set-Befehlen sparen, da der fhem-Server auch schon als Proxyserver IP eingetragen ist.

Viele Grüße
Markus

ottoplanet

Hallo Markus,

ich glaube ich weiß, warum es bei mir nicht funktioniert.
Ich betreibe mein FHEM in einem Synology Docker Container.
Da hat FHEM die 172.17.0.3 und das wird durch die Port-Eintellungen irgendwie in das Hautptnetz (bei mir 192.168.25.xxx) weitergereicht. Ich habe den Port 8003 auch entsprechend hinzugefügt und im MobileAlerts-Gateway die 172.17.0.3 (mein FHEM) eingetragen. Aber vermutlich geht das so doch nicht.

Hast du dazu vielleicht auch eine Idee??

Gruß Andreas

sash.sc

Habe mal den thread überflogen.
Man braucht immer noch das MA Gateway?
Nicht zu empfangen mit nem cul für 868Mhz?

Gruß Sascha

Gesendet von meinem E6653 mit Tapatalk

Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

MarkusF

Hallo Andreas,
wenn da noch ein Docker Container zwischen ist (leider habe ich keine Synology und kann es so nicht Schritt für Schritt sagen), muss man folgendes machen:

  • Auf der Synology einen Port in den Docker Container zu 8003 aufmachen
  • Mit der App das Gateway auf die Synology mit dem Port der Synology aufmachen
Als Test kann man mal von einem Rechner außerhalb der Synology ein: telnet <Synology-IP> <Port> machen. Dort einfach mal: GET / HTTP/1.1<Enter><Enter> eingeben.
Es sollte so etwas rauskommen:
mf@client:~$ telnet 192.168.1.2 8090
Trying 192.168.1.2...
Connected to 192.168.1.2.
Escape character is '^]'.
GET / HTTP/1.1

HTTP/1.1 405 Method Not Allowed
Content-Length: 0

Connection closed by foreign host.


Die Konfiguration des Gateways vom Modul aus, scheidet dabei leider aus (bzw. wäre kompliziert freizuschalten), da dafür UDP Aufrufe und Broadcasts verwendet werden, um die Gateways zu finden und einzustellen.

Hallo Sascha,

ja man braucht für das Modul des Gateway, bzw. anders gesagt das Modul setzt das Gateway voraus.
Man kann ggf. das entschlüsselte Protokoll nutzen (es sieht ziemlich Hardwarenah aus, mich würde wundern, wenn es ganz anders aussehen würde), aber leider weiß ich nicht, wie man Funkverkehr entsprechend mitschneiden und entschlüsseln kann.
Wenn es dafür ein gutes Tutorial gibt, würde ich es durchaus mal probieren. Seit Donnerstag habe ich auch eine NanoCul (als Ersatz für ein MAX Lan Gateway).

Viele Grüße
Markus

ottoplanet

Hallo Markus,

das mit dem Port habe ich ja schon eingestellt.

Mein Telent Test ergibt die gleichen Werte wie bei dir.

Mein Testsensor wird auch automatisch in FHEM erstellt.
Es kommen aber keine neuen Werte im Sensor an.
Der actStatus steht auf switchedOff. Das ist irgendwie komisch.

Das MobileAlerts Gateway kann ich ja über die iPhone App konfigurieren.

Hast du noch einen Tip?

Gruß Andreas


sash.sc

#98
Zitat von: MarkusF am 10 Juni 2018, 15:15:04
Hallo Andreas,
wenn da noch ein Docker Container zwischen ist (leider habe ich keine Synology und kann es so nicht Schritt für Schritt sagen), muss man folgendes machen:

  • Auf der Synology einen Port in den Docker Container zu 8003 aufmachen
  • Mit der App das Gateway auf die Synology mit dem Port der Synology aufmachen
Als Test kann man mal von einem Rechner außerhalb der Synology ein: telnet <Synology-IP> <Port> machen. Dort einfach mal: GET / HTTP/1.1<Enter><Enter> eingeben.
Es sollte so etwas rauskommen:
mf@client:~$ telnet 192.168.1.2 8090
Trying 192.168.1.2...
Connected to 192.168.1.2.
Escape character is '^]'.
GET / HTTP/1.1

HTTP/1.1 405 Method Not Allowed
Content-Length: 0

Connection closed by foreign host.


Die Konfiguration des Gateways vom Modul aus, scheidet dabei leider aus (bzw. wäre kompliziert freizuschalten), da dafür UDP Aufrufe und Broadcasts verwendet werden, um die Gateways zu finden und einzustellen.

Hallo Sascha,

ja man braucht für das Modul des Gateway, bzw. anders gesagt das Modul setzt das Gateway voraus.
Man kann ggf. das entschlüsselte Protokoll nutzen (es sieht ziemlich Hardwarenah aus, mich würde wundern, wenn es ganz anders aussehen würde), aber leider weiß ich nicht, wie man Funkverkehr entsprechend mitschneiden und entschlüsseln kann.
Wenn es dafür ein gutes Tutorial gibt, würde ich es durchaus mal probieren. Seit Donnerstag habe ich auch eine NanoCul (als Ersatz für ein MAX Lan Gateway).

Viele Grüße
Markus
Hallo Markus.

Dank dir die Antwort.

So aus dem Bauch heraus gedacht :

Ich glaube nicht, dass die die Sensorenhardware neu erfinden werden.
Ich denke, dass die evtl. Nur am auftrat was gemacht haben.
Man kann den nano cul in einem Modus schalten (set raw x...), wo der in Event Monitor dir alles ungefiltert raus schmeißt. Der nano cul muss aber im slowrf Modus laufen.
Es muss natürlich noch die frequenz passen (433/868).
Wobei ich denke, ohne jetzt nachgelesen zu haben, dass die ma Sensoren auf 868Mhz arbeiten, so wie die LaCrosse Sensoren.

Gruß Sascha

Nachtrag :technoline LaCrosse arbeitet mit nem jeelink bzw LaCrosse Gateway. Vielleicht braucht man das.
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

ottoplanet

Zitat von: ottoplanet am 10 Juni 2018, 17:57:04
Hallo Markus,

das mit dem Port habe ich ja schon eingestellt.

Mein Telent Test ergibt die gleichen Werte wie bei dir.

Mein Testsensor wird auch automatisch in FHEM erstellt.
Es kommen aber keine neuen Werte im Sensor an.
Der actStatus steht auf switchedOff. Das ist irgendwie komisch.

Das MobileAlerts Gateway kann ich ja über die iPhone App konfigurieren.

Hast du noch einen Tip?

Gruß Andreas

Hallo Markus,

jetzt geht es bei mir doch.
Vielen Dank für die Mühe.

Gruß Andreas

Michael

Moin MarkusF

Ich hätte einen Vorschlag.  :-[

Könntest du für die Temperatur und Luftfeuchtigkeit in der Form (currTemp/currHum)
bei den Attributes oder Internals mit aufnehmen?
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,
technisch möglich wäre es. Aber als Attribut wäre es total unpassend. Einmal sind Attribute eher was für die Konfiguration, zusätzlich würde jede Änderung dort ein save nötig machen und die Werte landen in der fhem.cfg, wo die nicht hingehören.
Internals wäre denkbar, allerdings ich sehe es eher als interne Werte an und gesichert werden die auch nicht.
Also ist in meinen Augen readings der richtige Ort. Und auch https://wiki.fhem.de/wiki/DevelopmentModuleIntro im Wiki gibt mir recht:
ZitatDaten, welche von einem Gerät gelesen werden und in FHEM in einer für Menschen verständlichen Form zur Verfügung gestellt werden können, werden Readings genannt. Sie geben den Status des Gerätes wieder und erzeugen Events innerhalb von FHEM auf die andere Geräte reagieren können.
In Bezug auf die beiden Werte habe ich dort aber ein Problem mit dem Mehrwert. Die Readings temperature und humidity geben an sich genau das wieder.
Ein Mehrwert in Bezug auf eine Vereinheitlichung sehe ich dort auch nicht. Ich habe mich dort gerade an vorhandene Namen angelehnt (z.B. von MAX und Homematic). Das sieht man auch gut daran, dass das Modul dewpoint (https://wiki.fhem.de/wiki/Dewpoint) ohne Probleme sofort lief.
Also ist mir kein Grund ersichtlich, warum ich es anpassen sollte (und ohne Grund will ich Werte nicht doppelt ausgeben).

Viele Grüße
Markus

Michael

Moin MarkusF

Vielen Dank für deine Ausführung.

Zitat... (und ohne Grund will ich Werte nicht doppelt ausgeben).
An doppelte Werte hatte ich auch nicht gedacht.

ZitatIch habe mich dort gerade an vorhandene Namen angelehnt (z.B. von MAX und Homematic). Das sieht man auch gut daran, dass das Modul dewpoint (https://wiki.fhem.de/wiki/Dewpoint) ohne Probleme sofort lief.
Auch bei den LaCrosse Device läuft das dewpoint Modul ohne Probleme.

Nur zum bessen Verständnis.
Der Vorschlag war in Anlehnung der LaCrosse Device gedacht.
ZitatInternals wäre denkbar, allerdings ich sehe es eher als interne Werte an und gesichert werden die auch nicht.
Dort gibt es die möglichkeit, sh. Auszug der Commandref.
Zitat
Define
define <name> LaCrosse <addr> [corr1...corr2]

addr is a 2 digit hex number to identify the LaCrosse device.
corr1..corr2 are up to 2 numerical correction factors (corr1 for the temperature and corr2 for the humidity), which will be added to the respective value to calibrate the device.

Das soll jetzt aber kein Versuch des Überreden's sein, sondern nur eine Erklärung meines Vorschlag's.
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

Ach so: corr... zur Korrektur von Werten, nicht curr... für den aktuellen Wert.
Dafür könnte es tatsächlich Anwendungsfälle geben, wäre auch nicht doppelt. Im Define bzw. Attributen wäre das auch der richtige Platz, wenn es Lacrosse im Define macht, mache ich es auch so, es werden allerdings mindestens vier Werte (jeweils zwei für In und Out). Mal schauen, was sich dort am Wochenende machen lässt.

Viele Grüße
Markus

MarkusF

Die Änderung ist ins svn von fhem eingecheckt. Sollte morgen an sich per update abrufbar sein.
Der define ist um bis zu vier optionale Werte (corrTempIn, corrHumIn, corrTempOut, corrHumOut) erweitert.

Viele Grüße
Markus