{"id":240,"date":"2020-11-07T15:40:27","date_gmt":"2020-11-07T14:40:27","guid":{"rendered":"http:\/\/blog.0link.net\/?p=240"},"modified":"2020-11-07T16:50:54","modified_gmt":"2020-11-07T15:50:54","slug":"node-red-vs-python","status":"publish","type":"post","link":"https:\/\/blog.0link.net\/index.php\/2020\/11\/07\/node-red-vs-python\/","title":{"rendered":"6. Node-RED vs. Python"},"content":{"rendered":"\n<p>Nun gab es ja diesen provisorischen minimalen Ansatz der Steuerung meiner Brandmeldeanlage in einem Node-RED-Flow, aber bevor ich nun versuche die gesamte Brandmeldezentrale in diesem Puzzle-Java zu bauen, wollte ich wieder zur\u00fcck in die Python-Welt, denn Node-RED war ja nur als Visualisierung der Zust\u00e4nde und Ersatz f\u00fcr noch fehlende BMA-Hardware gedacht.<\/p>\n\n\n\n<p>Klar ist die Idee charmant alles mit drag&#8217;n&#8217;drop in einem Browser-GUI zusammenzuklicken und ein bisschen Code in Funktionsbl\u00f6cken unterzubringen. Ich m\u00f6chte aber gerne die volle Kontrolle \u00fcber das Geschehen haben und f\u00fchle mich mit Python einfach wohler als mit Java.<\/p>\n\n\n\n<h2>das BMZ-Skript (nodebma_bmz.py) <\/h2>\n\n\n\n<p>Es wird also Zeit das Herzst\u00fcck der Brandmeldeanlage in Python zu schreiben. Um die Kommunikation mit dem I2C-Bus brauchen wir uns nicht mehr k\u00fcmmern, das macht ja nodebma_interface.py bereits als systemd-Service im Hintergrund. Die BMZ muss jetzt &#8222;nur noch&#8220; mit dem Broker sprechen und Entschiedungen treffen.<\/p>\n\n\n\n<p>Auch hier wird nun paho-mqtt zur Kommunikation mit dem Broker genutzt. Das Skript hat im wesentlichen eine Callback-Funktion f\u00fcr die eingehenden MQTT-Nachrichten und eine Main-Loop, in der die Versorgung des FAT-Displays mit der aktuellen Uhrzeit sowie ein paar Logik-Pr\u00fcfungen stattfinden,<\/p>\n\n\n\n<p>Aus dem MQTT-Callback werden in Abh\u00e4ngigkeit vom erkannten Trigger dann Funktionen f\u00fcr die Alarmausl\u00f6sung, R\u00fccksetzung, Steuerung von Akustik und \u00dcbertragung sowie die Bedienung und Versorgung des FAT umgesetzt.<\/p>\n\n\n\n<h2>Was die Brandmeldezentrale leisten soll<\/h2>\n\n\n\n<p>werde ich im n\u00e4chsten Teil versuchen zu umrei\u00dfen \ud83d\ude09<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nun gab es ja diesen provisorischen minimalen Ansatz der Steuerung meiner Brandmeldeanlage in einem Node-RED-Flow, aber bevor ich nun versuche die gesamte Brandmeldezentrale in diesem Puzzle-Java zu bauen, wollte ich wieder zur\u00fcck in die Python-Welt, denn Node-RED war ja nur als Visualisierung der Zust\u00e4nde und Ersatz f\u00fcr noch fehlende BMA-Hardware gedacht. Klar ist die Idee &hellip; <a href=\"https:\/\/blog.0link.net\/index.php\/2020\/11\/07\/node-red-vs-python\/\" class=\"more-link\"><span class=\"screen-reader-text\">6. Node-RED vs. Python<\/span> weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.0link.net\/index.php\/wp-json\/wp\/v2\/posts\/240"}],"collection":[{"href":"https:\/\/blog.0link.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.0link.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.0link.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.0link.net\/index.php\/wp-json\/wp\/v2\/comments?post=240"}],"version-history":[{"count":4,"href":"https:\/\/blog.0link.net\/index.php\/wp-json\/wp\/v2\/posts\/240\/revisions"}],"predecessor-version":[{"id":263,"href":"https:\/\/blog.0link.net\/index.php\/wp-json\/wp\/v2\/posts\/240\/revisions\/263"}],"wp:attachment":[{"href":"https:\/\/blog.0link.net\/index.php\/wp-json\/wp\/v2\/media?parent=240"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.0link.net\/index.php\/wp-json\/wp\/v2\/categories?post=240"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.0link.net\/index.php\/wp-json\/wp\/v2\/tags?post=240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}