{"id":1470,"date":"2021-04-18T15:00:09","date_gmt":"2021-04-18T15:00:09","guid":{"rendered":"https:\/\/open-boat-projects.org\/?page_id=1470"},"modified":"2022-01-19T16:39:07","modified_gmt":"2022-01-19T16:39:07","slug":"wifi-batteriemonitor-in-signalk-integrieren","status":"publish","type":"page","link":"https:\/\/open-boat-projects.org\/de\/wifi-batteriemonitor-in-signalk-integrieren\/","title":{"rendered":"WiFi Batteriemonitor in SignalK integrieren"},"content":{"rendered":"<p><a href=\"https:\/\/open-boat-projects.org\/wichtige-hinweise\/\" target=\"_blank\" rel=\"noopener\"><em><strong>Vorab ein paar wichtige Hinweise die sie unbedingt beachten sollten.<\/strong><\/em><\/a><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1496\" src=\"https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/PZEM-017_Batteriemonitor-300x266.jpg\" alt=\"\" width=\"400\" height=\"355\" srcset=\"https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/PZEM-017_Batteriemonitor-300x266.jpg 300w, https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/PZEM-017_Batteriemonitor-768x681.jpg 768w, https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/PZEM-017_Batteriemonitor-14x12.jpg 14w, https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/PZEM-017_Batteriemonitor.jpg 839w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/><\/p>\n<p><strong>Abb:<\/strong> WiFi Batteriemionitor<\/p>\n<p>Der <a href=\"https:\/\/open-boat-projects.org\/wifi-batteriemonitor\/\">WiFi Batteriemonitor<\/a> l\u00e4sst sich in SignalK integrieren. Die Messdaten k\u00f6nnen dann im Instrumenten-Panel angezeigt werden. Zur Integration in SignalK ist ein kleiner Umweg \u00fcber MQTT n\u00f6tig. Da der WiFi-Batteriemonitor mit der Tasmota-Software standardm\u00e4\u00dfig auch \u00fcber MQTT kommunizieren kann, benutzen wir diese Schnittstelle in Verbindung mit dem SignalK-Plugin <em><strong>signalk-mqtt-gw<\/strong><\/em> von Teppo Kurki. Grunds\u00e4tzlich ist es so, dass wir keinen MQTT-Server auf dem Raspi ben\u00f6tigen, wenn wir das SignalK-Plugin benutzen wollen. Sollte ein MQTT-Server auf dem Raspi laufen, so m\u00fcssen die Portadressen ge\u00e4ndert werden, um keine Konflikte zu bekommen. Das SignalK-Plugin verh\u00e4lt sich wie ein MQTT-Server und kann die gesendeten Telegramme interpretieren, allerdings ohne Fehlerbehandlung und spezielle Transaktionsabsicherung. Nachfolgend wird gezeigt wie die Konfiguration vorgenommen werden muss.<\/p>\n<h1>Konfiguration WiFi Batterie-Monitor<\/h1>\n<p>Unter <em><strong>Configure MQTT <\/strong><\/em>werden folgende Einstellungen vorgenommen:<\/p>\n<ul>\n<li><strong>Host:<\/strong> IP des Raspi auf dem SignalK l\u00e4uft<\/li>\n<li><strong>Port:<\/strong> 1883 (\u00e4ndern, falls ein MQTT-Server auf dem Rapi laufen sollte)<\/li>\n<li><strong>Client:<\/strong> PZEM-017 (Name des Ger\u00e4tes der als Source in MQTT angezeigt wird)<\/li>\n<li><strong>Topic:<\/strong> service<\/li>\n<li><strong>Full Topic:<\/strong> battmonitor\/service<\/li>\n<\/ul>\n<p>Username und Passwort bleiben unver\u00e4ndert und werden\u00a0 nicht benutzt.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1481 size-full\" src=\"https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/Configure_MQTT.png\" alt=\"\" width=\"383\" height=\"733\" srcset=\"https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/Configure_MQTT.png 383w, https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/Configure_MQTT-157x300.png 157w, https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/Configure_MQTT-6x12.png 6w\" sizes=\"auto, (max-width: 383px) 100vw, 383px\" \/><\/p>\n<p><strong>Abb:<\/strong> Configure MQTT<\/p>\n<p>Dann ist noch unter <em><strong>Configure Other<\/strong><\/em> zu pr\u00fcfen, ob MQTT aktiviert ist.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1480 size-full\" src=\"https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/Configure_Other2.png\" alt=\"\" width=\"378\" height=\"813\" srcset=\"https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/Configure_Other2.png 378w, https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/Configure_Other2-139x300.png 139w, https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/Configure_Other2-6x12.png 6w\" sizes=\"auto, (max-width: 378px) 100vw, 378px\" \/><\/p>\n<p><strong>Abb:<\/strong> Configure Other<\/p>\n<p>Unter <em><strong>Configure Logging<\/strong><\/em> wird die Updaterate eingestellt mit welcher die Telegramme versendet werden sollen. Dazu gibt es den Parameter <em><strong>Telemetry Period<\/strong><\/em>. Der Wert wird in Sekunden angeben. Als kleinster Wert kann 10 verwendet werden. Schnellere Daten\u00fcbertragungen als 10s sind damit nicht m\u00f6glich. In SignalK werden die Messdaten dann mit dieser Updaterate angezeigt.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1500 size-full\" src=\"https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/Configure_Logging.png\" alt=\"\" width=\"391\" height=\"731\" srcset=\"https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/Configure_Logging.png 391w, https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/Configure_Logging-160x300.png 160w, https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/Configure_Logging-6x12.png 6w\" sizes=\"auto, (max-width: 391px) 100vw, 391px\" \/><\/p>\n<p><strong>Abb:<\/strong> Configure Logging<\/p>\n<p>Als letzten Schritt m\u00fcssen wir noch zwei spezielle Rules in die Tasmota-Firmware einf\u00fcgen, die die Datentelegramme so aufbereitet, damit sie von dem SignalK-Plugin\u00a0 <em><strong>signalk-mqtt-gw<\/strong><\/em> verarbeitet werden k\u00f6nnen. Rules sind Tasmota-Firmware-Erweiterungen mit denen das Verhalten von Tasmota beeinflusst werden kann. Wer mehr wissen m\u00f6chte wie das funktioniert kann das hier <a href=\"https:\/\/tasmota.github.io\/docs\/Rules\/\" target=\"_blank\" rel=\"noopener\">im Detail nachlesen<\/a>. Das SignalK-Plugin f\u00fcr MQTT erwartet immer einzelne Datenpaare je Telegramm mit einem Bezeichner und einem Messwert. Der Bezeichner entspricht dabei dem Daten-Pfad in SignalK. Die Daten-Pfade sollten nicht beliebig gew\u00e4hlt werden und sich an die Vorgaben f\u00fcr Datenpfade halten. Details findet man in der <a href=\"http:\/\/signalk.org\/specification\/1.5.0\/doc\/signalk.pdf\" target=\"_blank\" rel=\"noopener\">SignalK-Dokumentation<\/a> im Anhang unter Appendix A und B. Beide Rules zerlegen das originale MQTT-Telegramm in 8 einzelne MQTT-Teiltelegramme wie man es auch im Logging sehen kann.<\/p>\n<p><span style=\"font-size: 10pt;\"><code>18:07:37 MQT: battmonitor\/service\/SENSOR = {\"Time\":\"2021-04-18T18:07:37\",\"ENERGY\":{\"TotalStartTime\":\"2021-04-09T17:21:15\",\"Total\":0.122,\"Yesterday\":0.011,\"Today\":0.111,\"Period\":0,\"Power\":6,\"Voltage\":13.03,\"Current\":0.470},\"DS18B20-1\":{\"Id\":\"3C01D6075272\",\"Temperature\":23.0},\"DS18B20-2\":{\"Id\":\"3C01D607E5E3\",\"Temperature\":23.3},\"TempUnit\":\"C\"}<\/code><\/span><\/p>\n<p>Die Rule1 k\u00fcmmert sich um die Weiterleitung der Temperaturwerte<\/p>\n<p><span style=\"font-size: 10pt;\"><code>Rule1<\/code><\/span><br \/>\n<span style=\"font-size: 10pt;\"><code>ON DS18B20#Temperature DO Var1 %value% ENDON<\/code><\/span><br \/>\n<span style=\"font-size: 10pt;\"><code>ON DS18B20#Temperature DO Add1 273.15 ENDON<\/code><\/span><br \/>\n<span style=\"font-size: 10pt;\"><code>ON DS18B20-1#Temperature DO Var2 %value% ENDON<\/code><\/span><br \/>\n<span style=\"font-size: 10pt;\"><code>ON DS18B20-1#Temperature DO Add2 273.15 ENDON<\/code><\/span><br \/>\n<span style=\"font-size: 10pt;\"><code>ON DS18B20-2#Temperature DO Var3 %value% ENDON<\/code><\/span><br \/>\n<span style=\"font-size: 10pt;\"><code>ON DS18B20-2#Temperature DO Add3 273.15 ENDON<\/code><\/span><br \/>\n<span style=\"font-size: 10pt;\"><code>ON DS18B20-3#Temperature DO Var4 %value% ENDON<\/code><\/span><br \/>\n<span style=\"font-size: 10pt;\"><code>ON DS18B20-3#Temperature DO Add4 273.15 ENDON<\/code><\/span><br \/>\n<span style=\"font-size: 10pt;\"><code>ON tele-DS18B20 DO publish vessels\/self\/environment\/inside\/DS18B20_1\/temperature %Var1% ENDON<\/code><\/span><br \/>\n<span style=\"font-size: 10pt;\"><code>ON tele-DS18B20-1 DO publish vessels\/self\/environment\/inside\/DS18B20_1\/temperature %Var2% ENDON<\/code><\/span><br \/>\n<span style=\"font-size: 10pt;\"><code>ON tele-DS18B20-2 DO publish vessels\/self\/environment\/inside\/DS18B20_2\/temperature %Var3% ENDON<\/code><\/span><br \/>\n<span style=\"font-size: 10pt;\"><code>ON tele-DS18B20-3 DO publish vessels\/self\/environment\/inside\/DS18B20_3\/temperature %Var4% ENDON<\/code><\/span><\/p>\n<p>Dabei werden die Temperaturwerte eingelesen und in Kelvin umgerechnet, da SignalK immer Messwerte in SI-Einheiten erwartet.<\/p>\n<div>Die Rule2 bereitet die elektrischen Messwerte auf.<\/div>\n<div><\/div>\n<div><span style=\"font-size: 10pt;\"><code>Rule2<\/code><\/span><br \/>\n<span style=\"font-size: 10pt;\"><code>ON ENERGY#Power DO Var5 %value% ENDON<\/code><\/span><br \/>\n<span style=\"font-size: 10pt;\"><code>ON ENERGY#Voltage DO Var6 %value% ENDON<\/code><\/span><br \/>\n<span style=\"font-size: 10pt;\"><code>ON ENERGY#Current DO Var7 %value% ENDON<\/code><\/span><br \/>\n<span style=\"font-size: 10pt;\"><code>ON ENERGY#Total DO Var8 %value% ENDON<\/code><\/span><br \/>\n<span style=\"font-size: 10pt;\"><code>ON ENERGY#Yesterday DO Var9 %value% ENDON<\/code><\/span><br \/>\n<span style=\"font-size: 10pt;\"><code>ON ENERGY#Today DO Var10 %value% ENDON<\/code><\/span><br \/>\n<span style=\"font-size: 10pt;\"><code>ON tele-ENERGY DO publish vessels\/self\/electrical\/batteries\/service\/power %Var5% ENDON<\/code><\/span><br \/>\n<span style=\"font-size: 10pt;\"><code>ON tele-ENERGY DO publish vessels\/self\/electrical\/batteries\/service\/voltage %Var6% ENDON<\/code><\/span><br \/>\n<span style=\"font-size: 10pt;\"><code>ON tele-ENERGY DO publish vessels\/self\/electrical\/batteries\/service\/current %Var7% ENDON<\/code><\/span><br \/>\n<span style=\"font-size: 10pt;\"><code>ON tele-ENERGY DO publish vessels\/self\/electrical\/batteries\/service\/energytotal %Var8% ENDON<\/code><\/span><br \/>\n<span style=\"font-size: 10pt;\"><code>ON tele-ENERGY DO publish vessels\/self\/electrical\/batteries\/service\/energyyesterday %Var9% ENDON<\/code><\/span><br \/>\n<span style=\"font-size: 10pt;\"><code>ON tele-ENERGY DO publish vessels\/self\/electrical\/batteries\/service\/energytoday %Var10% ENDON<\/code><\/span><\/div>\n<div><\/div>\n<div>Die beiden Rules werden einzeln als kompletter Text-String in der Console eingegeben und mit Enter best\u00e4tigt. Anschlie\u00dfend m\u00fcssen wir noch die Rules mit den Kommandos <em><strong>Rule1 ON<\/strong><\/em>\u00a0 und <em><strong>Rule2 ON<\/strong><\/em> aktivieren. In der Console sollten dann die Zerlegung und die einzelnen Telegramme zu sehen sein.<\/div>\n<div><\/div>\n<div><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1479 size-full\" src=\"https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/Console.png\" alt=\"\" width=\"516\" height=\"635\" srcset=\"https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/Console.png 516w, https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/Console-244x300.png 244w, https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/Console-10x12.png 10w\" sizes=\"auto, (max-width: 516px) 100vw, 516px\" \/><\/div>\n<div><strong>Abb:<\/strong> Console mit Einzeltelegrammen zu den Messwerten<\/div>\n<div><\/div>\n<div>Hier noch einige wichtige Kommandos f\u00fcr Rules:<\/div>\n<ul>\n<li><strong><em>RuleX 0<\/em><\/strong> &#8211; deaktiviert eine Rule<\/li>\n<li><em><strong>RuleX &#8222;<\/strong><\/em> &#8211; l\u00f6scht eine Rule<\/li>\n<li><em><strong>RuleX ON &#8211;<\/strong><\/em> aktiviert eine Rule<\/li>\n<\/ul>\n<h1>Konfiguration in SignalK<\/h1>\n<p>Auf dem Raspberry Pi sollte man zu erst pr\u00fcfen, ob ein MQTT-Server wie <em><strong>mosquitto<\/strong><\/em> l\u00e4uft. Das kann man einfachsten in einer Konsole mit dem Kommando <em><strong>top<\/strong> <\/em>machen. Es zeigt eine Liste aller laufenden Prozesse auf dem Raspi. Sollte der MQTT-Server laufen ohne das man ihn benutzt, dann sollte man ihn mit dem Befehl <em><strong>sudo apt-get remove mosquitto<\/strong><\/em> deintsallieren. Wird er ben\u00f6tigt, so muss ein anderer Port als 1883 in der Konfiguration benutzt werden.<\/p>\n<p>In SignalK wird das Plugin <em><strong>signalk-mqtt-gw<\/strong><\/em> unter <strong>Appstore -&gt; Available<\/strong> installiert. Unter <strong>Server -&gt; Plugin Config<\/strong> werden dann noch folgende Einstellungen vorgenommen.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1502 size-full\" src=\"https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/Plugin_Config.png\" alt=\"\" width=\"526\" height=\"966\" srcset=\"https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/Plugin_Config.png 526w, https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/Plugin_Config-163x300.png 163w, https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/Plugin_Config-7x12.png 7w\" sizes=\"auto, (max-width: 526px) 100vw, 526px\" \/><\/p>\n<p><strong>Abb:<\/strong> Plugin Config in SignalK<\/p>\n<p>Wenn alles richtig konfiguriert ist muss noch ein Restart von SignalK durchgef\u00fchrt werden. Dann sind die Daten im <strong>Data Browser<\/strong> zu sehen.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1503 size-large\" src=\"https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/Data_Browser_SignalK-1024x617.png\" alt=\"\" width=\"952\" height=\"574\" srcset=\"https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/Data_Browser_SignalK-1024x617.png 1024w, https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/Data_Browser_SignalK-300x181.png 300w, https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/Data_Browser_SignalK-768x463.png 768w, https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/Data_Browser_SignalK-16x10.png 16w, https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/Data_Browser_SignalK.png 1277w\" sizes=\"auto, (max-width: 952px) 100vw, 952px\" \/><\/p>\n<p><strong>Abb:<\/strong> SignalK Data Browser<\/p>\n<p>Je nach Anzahl der angeschlossenen 1Wire-Temperatursensoren (DS18B20) werden dann noch Temperaturwerte angezeigt. Sofern auch die Datenbank InfluxDB und das Datenbankfrontend Grafana installiert sind, k\u00f6nnen umfangreiche grafische Datenauswertungen vorgenommen werden.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1518 size-full\" src=\"https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/InstrumentPanael_SignalK-1.png\" alt=\"\" width=\"1007\" height=\"619\" srcset=\"https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/InstrumentPanael_SignalK-1.png 1007w, https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/InstrumentPanael_SignalK-1-300x184.png 300w, https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/InstrumentPanael_SignalK-1-768x472.png 768w, https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/InstrumentPanael_SignalK-1-16x10.png 16w\" sizes=\"auto, (max-width: 1007px) 100vw, 1007px\" \/><\/p>\n<p><strong>Abb:<\/strong> Messdaten im Instrument Panel von SignalK<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1515 size-large\" src=\"https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/Grafana-1003x1024.png\" alt=\"\" width=\"952\" height=\"972\" srcset=\"https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/Grafana-1003x1024.png 1003w, https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/Grafana-294x300.png 294w, https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/Grafana-768x784.png 768w, https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/Grafana-12x12.png 12w, https:\/\/open-boat-projects.org\/wp-content\/uploads\/2021\/04\/Grafana.png 1007w\" sizes=\"auto, (max-width: 952px) 100vw, 952px\" \/><\/p>\n<p><strong>Abb:<\/strong> Messdaten mit Grafana visualisiert<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vorab ein paar wichtige Hinweise die sie unbedingt beachten sollten. Abb: WiFi Batteriemionitor Der WiFi Batteriemonitor l\u00e4sst sich in SignalK integrieren. Die Messdaten k\u00f6nnen dann im Instrumenten-Panel angezeigt werden. Zur Integration in SignalK ist ein kleiner Umweg \u00fcber MQTT n\u00f6tig. Da der WiFi-Batteriemonitor mit der Tasmota-Software standardm\u00e4\u00dfig auch \u00fcber MQTT kommunizieren kann, benutzen wir diese&hellip; <a href=\"https:\/\/open-boat-projects.org\/de\/wifi-batteriemonitor-in-signalk-integrieren\/\" class=\"more-link\">Weiterlesen <span class=\"screen-reader-text\">WiFi Batteriemonitor in SignalK integrieren<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[39],"tags":[],"class_list":["post-1470","page","type-page","status-publish","hentry","category-opensource"],"_links":{"self":[{"href":"https:\/\/open-boat-projects.org\/de\/wp-json\/wp\/v2\/pages\/1470","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/open-boat-projects.org\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/open-boat-projects.org\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/open-boat-projects.org\/de\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/open-boat-projects.org\/de\/wp-json\/wp\/v2\/comments?post=1470"}],"version-history":[{"count":33,"href":"https:\/\/open-boat-projects.org\/de\/wp-json\/wp\/v2\/pages\/1470\/revisions"}],"predecessor-version":[{"id":2644,"href":"https:\/\/open-boat-projects.org\/de\/wp-json\/wp\/v2\/pages\/1470\/revisions\/2644"}],"wp:attachment":[{"href":"https:\/\/open-boat-projects.org\/de\/wp-json\/wp\/v2\/media?parent=1470"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/open-boat-projects.org\/de\/wp-json\/wp\/v2\/categories?post=1470"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/open-boat-projects.org\/de\/wp-json\/wp\/v2\/tags?post=1470"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}