NEWS
Anleitung/Use-Case: TFA Sensoren ohne Cloud in ioBroker
-
Servus, Ich Versuch mal eine Schritt für Schritt Anleitung
Darauf läuft der MAServer bei mir seit einiger Zeit Problemlos
Meine Hardware: Raspberry PI4
Software: Debian Buster, Bullseye 32bit und aktuell Bullseye 64bit- MobileAlerts Hardware:
*Gateway
*Temperatursensor MA10200 der Wetterstation MA10050
*Regensensor MA10650
*Windsensor MA10660
*Wettersation MA10430
Der Server ist bei mir im Verzeichnis /opt des Raspi wo der IOBroker läuft und Reagiert bei mir auf Port 8080
Daten werden an den MQTT-Adapter Server/Broker im IOBroker geschickt und können von dort weiterverarbeitet werdenAnleitung für MMMMobileAlerts ProxyServer:
#####################################1# MobileAlerts Gateway auf Proxyserver umstellen
-
entweder per Handy App mit dem Ihr das System eingerichtet habt
https://play.google.com/store/apps/details?id=eu.mobile_alerts.mobilealerts&hl=de&gl=US
unter Einstellungen -> Gateway -> Konfigurieren -> Gateway auswählen -> Proxy Server verwenden -> Haken setzen + IP-Adresse eures IOBrokers + Port 8080 einfügen
-
oder über Windows Programm Weather Direct ->Datei-> Gateway_Advanced_Setup-1.11.exe
http://www.weatherdirect.com/help/gatewayhelp2.aspx
unter Download the Gateway Advanced Setup software
Programm Installieren unter Windows
unter Socket Communiation -> PC-IP
IP Adresse des PC Auswählen -> Serach
Proxyserver ganz unten eingeben IP-Adresse von Raspberry und Port 8080
-> Set -> Reboot
2# MA Server Dateien downloaden und bearbeiten
-
ZIP Dateien downloaden von https://github.com/sarnau/MMMMobileAlerts
-> Code -> Download ZIP -> Entpacken -
Wir brauchen die Dateien im Ordner "maserver"
-
Datei config-sample.json in config.json umbenennen und bearbeiten:
"localIPv4Address": "IP-ADRESSE DES IOBROKER",
MQTT Einstellungen IP-Adresse,Ordner-Objekte,UserMQTT und Passwort
"mqtt": "mqtt://IP-ADRESSE DES IOBROKER", "mqtt_home": "MobileAlerts/", "mqtt_username": "USERNAME-MQTT-ADAPTER", "mqtt_password": "PASSWORT-MQTT-ADAPTER",
"publish_type": "default", "sonoffPublish_prefix": null,
Logfile lass ich leer sonst Protokolliert er jeden Wert mit
"logfile": "",
"logGatewayInfo": true,
Port den ihr im Gateway bei Proxyserver angegeben habt
"proxyServerPort": 8080,
MobileAlerts Cloud weiter nutzen dann auf true
Empfehlung erst mal ja dann könnt ihr die HandyApp weiter nutzen
im IOBroker den Mobile-Alerts Adapter weiter eure Daten empfangen
bis Ihr eure Scripte angepasst habt und auch zum Daten vergleichen
Später kann man ihn immer noch ausschalten"mobileAlertsCloudForward": true,
"serverPost": null, "serverPostUser": null, "serverPostPassword": null, "locale": "en-US"
- Datei maserver.service bearbeiten:
# Update to the username owning the installation User=iobroker # update to the proper path WorkingDirectory=/opt/maserver ExecStart=/usr/bin/node /opt/maserver/mobilealerts.js
3# MA Server installieren unter /opt
Ich benutze für die SSH-Eingaben den MobaXterm damit kann man die Dateien auch per Drag&Drop übertragen.
Voraussetzung dein Benutzer ist in der Gruppe iobroker- Verzeichnis maserver erstellen und Rechte vergeben
cd /opt/ sudo mkdir maserver sudo chown -R iobroker:iobroker /opt/maserver sudo chmod -R 775 /opt/maserver
- Alle bearbeitet Dateien aus dem Ordner maserver in den auf den Raspberry in den Ordner /opt/maserver/ schieben
Mit Programm MobaXterm sehr einfach Drag&Drop - Rechte der Dateien bearbeiten
sudo chown -R iobroker:iobroker /opt/maserver sudo chmod -R 775 /opt/maserver
- Datei maserver.service in den Ordner /etc/systemd/system/ schieben
cd /opt/maserver sudo mv maserver.service /etc/systemd/system/
- maserver installieren
cd /opt/maserver sudo npm install sudo systemctl daemon-reload sudo systemctl start maserver.service
- Server ist nun installiert
- MobileAlerts Hardware:
-
4# Mobile Alerts Server Daten im MQTT-Adapter
- Die Daten kommen im MQTT-Adapter nach mehren Minuten an, beim Regensensor kann es bis zu vier Stunden dauern
- Unter Objekte im MQTT Adapter sollte im Datenpunkt "mqtt.0.info.connection" dann "MABroker" stehen wenn der Server läuft.
- Im Ordner MobileAlerts sind dann die Sensoren
- Temperatursensor MA10200 der Wetterstation MA10050
- Regensensor MA10650
- Windsensor MA10660
- Wettersation MA10430
-
5# Mobile Alerts Server Überwachen
Damit der Server überwacht wird hab ich ein Blockly Script geschrieben.
Zusätzlich benötigter Adapter Linux-Control.
Damit wird alle 5 Minuten mit einem Trigger überprüft ob er noch läuft und gegeben falls der Service MAServer über den Linux-Control Adapter neu gestartet .
Funktioniert auch beim Neustart bis IOBroker und MQTT-Adapter wieder online sind
Hierfür wird der DP system.adapter.mqtt.0.alive überwacht.
Und auch eine Warnmeldung gesendet wenn gewünscht.
Benötigt wird dafür ein Datenpunkt Boolean.
Meiner ist unter 0_userdata.0.Warnung.Wettersensor_Server
und der Telegram Adapter wenn gewünschtLinux Control Adapter:
-
Reiter Allgemein
Host IObroker anlegen
-
Reiter Datenpunkte
Haken unter services Information und Fernsteuerung von Diensten
-
Reiter Services
Dienst hinzufügen "maserver"
-
Datenpunkte
Zum Restarten den Datenpunkt:
linux-control.0.HAUSAUTO-PI4.services.maserver.restart
-
Hier das Blockly Script:
-
-
@bommelpage Freut mich, dass es bei Dir gut funktioniert
Sorry, dass ich offline war und mich noch nicht gemeldet hab bis jetzt. -
@renderender Hi
Super, hoffe, Du bist soweit zufrieden. Wenn was sein sollte... Bin wieder erreichbar jetzt. -
Ich tu mal hier meine alten Blocklyscripte rein um die Werte der MobileAlerts Sensoren auszulesen.
Das es ja unzählige Sensoren gibt, soll dies den einen oder anderen vielleicht Helfen für sich was zu basteln.6# Mobile Alerts Server Werte auslesen Datenpunkte anlegen
Folgende Datenpunkte werden angelegt
sind bei mit im Ordner 0_userdata.0.Wetter_Sensorenz.B. Temperatursensor MA10200
z.B. Wettersation MA10430
Regensensor MA10650
Windsensor MA10660
und für die Statistik
BlocklyScript um die Datenpunkte anzulegen:
MA_Datenpunkte.txt7# Mobile Alerts Server Werte auslesen Werte in Datenpunkte schreiben
BlocklyScript um die Werte aus MQTT auszulesen und in die Datenpunkte zu speichern
MA_Werte_auslesen.txtBlocklyScript mit einem Zeit-Trigger um Mitternacht,
das die Aktuellen-Werte in den Datenpunkt Gestern speichert,
Und am Ende sogar in eine SQL-Datenbank einträgt
MA_DatenpunkteStatistik.txtVielleicht hilft das den einen oder anderen
-
@bommelpage Hallo und vielen Dank, ich bin genau nach der Anleitung vorgegangen und scheitere dabei die Datei maserver.service in den Ordner /etc/systemd/system/ zu kopieren/schieben. Es kommt immer die Fehlermeldung "Datei oder Verzeichnis nicht vorhanden". Komme da einfach nicht weiter, was mach ich falsch oder ? Vielen Dank
-
@sadir sagte in Anleitung/Use-Case: TFA Sensoren ohne Cloud in ioBroker:
scheitere dabei die Datei maserver.service in den Ordner /etc/systemd/system/ zu kopieren/schieben.
Konkret? Was machst du mit welchen Befehlen?
-
@thomas-braun dieser Befehl "sudo mv maserver.service /etc/systemd/system/"
es scheint an den Zugriffsrechten zu scheitern. -
@sadir Servus,
Anleitung ist für Raspi mit Bullseye
dort sollte es einen Ordner geben:
....\etc\system\system
und in den von dir hochgeladen Dateien sollte es einen Ordner und eine Datei geben:
......\opt\maserver\maserver.service
Wie du die Datei verschiebst bleibt dir überlassen
Entweder mit Befehl oder Programm z.B. MobaXterm oder Midnight Commander -
@sadir
Sehe grad einen Fehler in der Anleitung, Glaub ich
du musst im Ordner
......\opt\maserver\
seincd /opt/maserver sudo mv maserver.service /etc/systemd/system/
Habs damals mit Programm verschoben
-
@sadir sagte in Anleitung/Use-Case: TFA Sensoren ohne Cloud in ioBroker:
dieser Befehl "sudo mv maserver.service /etc/systemd/system/"
es scheint an den Zugriffsrechten zu scheitern.Konkreter...
Vollständige (inkl. LoginPrompt) Ein- wie Ausgaben zeigen. -
@bommelpage Danke, jetzt hat es funktioniert, die Datei ist im richtigen Ordner. Aber ein kleiner Fehler ist bei dir vorhanden:
"sudo mv maserver.service /etc/systemd/system/" das s hatte gefehlt, aber ansonsten lief es jetzt, obwohl ich es vorher auch mit Filezilla und MobaXterm probiert hatte, Mhm. Eine Frage hätte ich noch zu dem MQTT Adapter, ist es egal welchen man nimmt und belässt man die URL auf 127.0.0.1 und den Port auf 1883? Vielen Dank schon mal, ich hoffe ich bekomme es wieder ans laufen. -
@bommelpage leider noch nicht ganz geschafft:
-
@sadir bei mir sind folgende Einstellungen:
[IPv4] 0.0.0.0 - Zugriff von allen IPs zulassen
Port 1883
-
@bommelpage Danke und der Rest bleibt so bei den Verbindungen?
-
@sadir Falls der MQTT Adapter rot bleibt und keine Daten empfängt
den MAServer mal neu startenüber den Linux adapter restart
Link Text
Linux Adapter mit Blockly empfehle ich sowieso damit der MAServer beim Neustart vom IOBroker mit gestartet wird sonst mußt du es manuell machenoder über Befehl:
sudo systemctl restart maserver.service
-
@bommelpage Vielen Dank schon mal bis dahin. Bin jetzt an Punkt 4 angelangt und habe den MQTT Adapter am laufen, welcher auch Daten liefert in den Objekten. Den Linux Adapter habe ich auch am laufen, mir ist aber nicht schlüssig wie ich an die einzelnen Werte wie Temperatur, Luftfeuchte komme und diese wieder in meine VIS übernehmen kann? Habe mich mal durch die Blockly Skripte gekämpft, hat mich aber eher irritiert und nicht weiter gebracht. Leider sind meine Programmkenntnisse nicht sehr gut um da alleine weiter zu kommen, vielleicht kannst du mir da ein wenig helfen. Danke.
-
@sadir zum auslesen gibts noch den Sonoff-Adapter aber da müßte dir @great-sun helfen, ich mach alles über Blockly.
Hier mal einfach wie du die Werte einzeln bekommst:
Beispiel: Temperatursensor
MQTT Datenpunkt Inhalt:{"temperature":[20.6,20.6],"humidity":[64,64],"id":"0308ff550d7a","t":"9/28/2023, 4:15:16 PM","ut":1695910516,"utms":"2023-09-28T14:15:16.000Z","battery":"ok","offline":false}
Trigger auf den MQTT Datenpunkt Beispiel:mqtt.0.MobileAlerts.0308ff550d7a.json
Werte mit Komma wie Temperatur mit "in der Liste"
Statt debug output halt einen NummernDatenpunkt anlegen und den Wert dort reinschreiben -
@bommelpage Danke schön, werde es morgen gleich mal austesten.