Seite 1 von 1

Umstellung meiner eigenen Programmierung auf OpenHab

Verfasst: 7. Feb 2022 20:47
von laoli
Hallo zusammen,

Vorgeschichte:
nach langer Zeit, habe ich mich dazu entschieden meine eigene jahrealte Programmierung (damals Java mit Java Servlets, ohne irgendein Smarthome Framework. Als Oberfläche hat ich damals irgendein jquery mobile verwendet) durch OpenHab abzulösen.
Grundsätzlich sieht das auch alles recht passend aus, lediglich eine gute Oberfläche für einen Wecker (gibts da was, sonst würde ich das extern triggern) fehlt und ich weiß nicht ob ich meine alte ArtNet Animationen (Lampe mit 320 LED's) direkt übernehme oder die Animationen extern ausführe und nur durch OpenHab ansteure (kann ein Teil der alten Programmierung auf einer VM bestehen lassen und eine Schnittstelle machen. Eine entsprechende Virtualisierungsumgebung ist eh vorhanden). Artnet scheint ja mittlerweile zu gehen, aber es sind halt auch Animationen die mehrmals die Sekunde etwas ändern (also Fades, etc.).

Für die neue Umsetzung habe ich mir bereits ein Sonoff 433 MHz Gateway bestellt (für einfache Steckdosen und Schalter), welches auf Tasmota umgestellt wird, eventuell kommt auch noch ein Zigbee Gateway dazu.
Die 433MHz Sachen habe ich damals direkt über ein eigenes, so gesehen proprietäres, Gateway erledigt.
Trennen tue ich dabei nach unwichtig, wichtiger und Sicherheitskritisch. Alarmsensoren werde ich bspw. daher per Kabel verbinden und eine Art mqtt Alarmsensor Gateway bauen (falls jemand da Jammer Erkennungen kennt, die Zuverlässig laufen, wäre das auch sehr interessant. Ein HackRF (vorhanden) oder LimeSDR dafür hinzustellen wäre eventuell leichter als die ganzen Kabel zu verlegen, auch wenn ich da zum Teil schon dran bin. Einen Teil der Sensoren würde ich in dem Fall auch über Funk machen).
Kameras werde ich eventuell auch einbinden, die laufen für sich aber momentan ganz gut in BlueIris (auch wenn ich eine OpenSource Variante schöner fände, ZoneMinder ist aber einfach nicht schön von der Oberfläche her).
Werde BlueIris aber über mqtt an OpenHab anbinden.

Die oberen Sachen sind erstmal nur eine Einleitung, woher ich so zusagen komme und was ich vor habe. Damit werde ich klar kommen.
Ich suche aber nach einem Tipp für folgendes:


In meinem Sicherungskasten laufen 3 Stromstoßkreise zusammen (2 ganz normale Stromstoßschalter, ein weiterer hat eine Dimm Funktion).
Die würde ich gerne mit einbinden, hauptsächlich für eine Daheim Simulierung.
Elektrisch lässt sich sowas natürlich simpel aufbauen:
-3 Relais um die Stromstoßschalter zu triggern (am besten natürlich durch Optokoppler getrennt). Oder TRIAC.
-3 Optokoppler um den aktuellen Status hinter dem Stromstoßschalter auszulesen (eventuell kleiner Kondensator hinter dem Optokoppler, damit der Nulldurchgang nicht triggert. Lässt sich natürlich auch per Software lösen)
-Irgendein Hutschienen Raspberry (overpowered...) oder Arduino/ESP in einem vernünftigen Gehäuse mit vernünftigen Netzteil

Gibts da nicht etwas fertiges um das zu realisieren?
Ich baue in das 230V Stromnetz ungern eigene Bauten ein, auch wenn ich das m.E. vernünftig machen könnte und mir in so einem Fall auch eine vernünftige Platine ätzen lassen würde (an ein entsprechend Gehäuse angepasst).
Wenn es etwas fertiges gibt, lohnt sich der Zeitaufwand auch eher weniger
Ist halt irgendwo auch eine Frage der Versicherung.
Ich bin zwar unter anderem Elektrofachkraft (IT-Systemelekroniker und Fachinformatik SI, doppelt hält besser...), aber privat etwas zu machen ist ja bekanntlich eigentlich nicht erlaubt bzw. versichert.
Klar gibt es entsprechende SPS Controller oder ähnliches, die die Funktion zum Teil übernehmen können und für die man bestimmt Schnittstellen realisieren kann.
Problem ist aber einerseits der Dimmer und anderseits will ich bestimmte Beleuchtungen nicht von Software abhängig machen (Der Stromstoßschalter läuft halt immer, egal ob die Software dahinter ausfällt. Das sind halt Flurlichter die immer funktionieren müssen, auch wenn der Server mal ein Problem hat).

Re: Umstellung meiner eigenen Programmierung auf OpenHab

Verfasst: 8. Feb 2022 00:12
von udo1toni
Klingt alles schon recht fortgeschritten :)

Was das Artnet betrifft, empfehle ich Dir dringend, die eigentlichen Sequenzen weiterhin über eine externe Software zu erledigen. openHAB kann durchaus hundert und mehr Schaltbefehle in der Sekunde ausführen, aber jede steuerbare Lampe ist ein Befehl. openHAB ist definitiv nicht als Sequencer für Lightshows geeignet. vielmehr ist es eine Steuerzentrale, in der alle Fäden zusammenlaufen. openHAB sendet dann also eher den Befehl "Spiele Sequenz 1 in Geschwindigkeit b ab", als eine lange Reihe von rasch aufeinander folgenden Befehlen, um Lampen auf bestimmte Helligkeiten zu dimmen.

Die Stromstoßschalter würde ich einfach durch Shelly Module ersetzen. Es gibt sogar extra Module für den Schaltschrank, die Dinger passen aber auch in eine normale Schalterdose hinter einen flachen Taster. Die Shellies haben (1-Kanal-Version) einen Tastereingang, der auf Wunsch unabhängig vom Relaisausgang verwendet werden kann und auf den direkt die Tasterausgänge geklemmt werden können, er ist also der ideale Ersatz für ein Stromstoßrelais oder auch das Treppenlicht Relais.
Den Shelly gibt es auch als Dimmaktor, ebenso kompakt (und bis 220W zertifiziert). Die Sellies können direkt in openHAB eingebunden werden, wahlweise kann man sie auch über mqtt steuern (unter Wegfall der Cloud-Option), oder man flasht sie gar auf Tasmota um (das wäre aber vor allem interessant, wenn man schon andere Tasmota Devices nutzt und überall die gleiche Bedienphilosophie nutzen möchte.

Re: Umstellung meiner eigenen Programmierung auf OpenHab

Verfasst: 8. Feb 2022 23:15
von laoli
das mit dem ArtNet hatte ich mir schon fast gedacht, aber dann werde ich die Animation halt extern laufen lassen und wahrscheinlich über mqtt aktiveren.
mqtt ist da ja echt nett und bietet sich an, wollte das eigentlich schon länger mal nutzen.

Die Shelly Dimmer werde ich mir mal ansehen, die Leistung reicht auf jeden Fall.
Wusste nicht dass es diese als Dimmer gibt, damit hätte sich die ganze Thematik eigentlich erledigt (wenn die, wovon ich ausgehe, auch alleine Ihren Job machen wenn der Server mal ausfällt).

Habe gerade eine Sonoff RF Bridge auf Tosmata geflasht und die Portisch firmware aufgespielt.
An sich ganz nett, aber irgendwie nervt die Einbindung in openhab.
Ist halt unpraktisch, dass die RF Werte im gleichen Wert über MQTT übermittelt werden und nicht einzeln übertragen werden, aber da fehlt mir eventuell noch der Umgang mit openhab (auch eben erst installiert, aber werde da dran bleiben)

Re: Umstellung meiner eigenen Programmierung auf OpenHab

Verfasst: 9. Feb 2022 02:21
von udo1toni
laoli hat geschrieben: 8. Feb 2022 23:15 An sich ganz nett, aber irgendwie nervt die Einbindung in openhab.
Ist halt unpraktisch, dass die RF Werte im gleichen Wert über MQTT übermittelt werden und nicht einzeln übertragen werden
Nun ja, das ist aber der Umsetzung in Tasmota bzw. Portisch geschuldet, die Werte kommen halt in einem Topic an, da kann openHAB ja nichts dran ändern.

Es gibt verschiedene Möglichkeiten, damit umzugehen. Du kannst das Topic auf mehrere Items verlinken und im Profile per JSONPATH unterschiedliche Beeiche des Payload verwenden. das ist aber nur sinnvoll, wenn immer alle Bereiche übertragen werden.
eine weitere Option ist, mehrere Channel mit identischem stateTopic anzulegen und dort über verknüpfte Transformations nur jeweils die Payload durchzulassen, welche auch den entsprechenden Teil enthält. Je nach Anzahl verschiedener Informationen kann das auch nervig sein.
Du kansnt auch einfach einen String Channel nutzen und das stateTopic an eine Rule weiterleiten, welche dann abhängig vom Inhalt des String Items divers andere Items beeinflussen kann. In der Rule Engine kannst Du selbstverständlich auch auf JSONPATH usw. zugreifen, bist aber wesentlich flexibler als in der Thing-Definition.

Re: Umstellung meiner eigenen Programmierung auf OpenHab

Verfasst: 10. Feb 2022 19:08
von laoli
Ich werde das über eine Rule realisieren, das scheint mir momentan am sinnvollsten.

Hab gestern auch ein DUALR3 geflasht, jetzt habe ich schon mal paar Sachen zum testen.

Durch die Strompreissteigerung (bei mir von ca. 25 cent auf 46 cent ab März) "musste" ich mir jetzt aber gestern auch erstmal einen neuen Server bestellen und werde am Wochenende erstmal mit der Migration beschäftigt sein (eben gesehen das du auch Proxmox nutzt).
Sind ein paar Maschinen, viele Daten und eine recht komplexe VLAN Umgebung, daher wird das trotz den schönen Cluster Funktionen etwas dauern und ich muss nochmal paar Sachen testen damit das glatt läuft.
Mein Hauptrechner ist übrigens eine VM mit eingebundener Grafikkarte (in einem anderen Raum), das ist einfach nur genial praktisch und kann ich für vieles empfehlen :)

Spätestens nächste Woche gehts dann weiter mit OpenHAB und hab da schon einige Ideen.
Hab schon viel zu lange gewartet mit der Umstellung :)

Auf jeden Fall vielen Dank für den Empfang im Forum!

Re: Umstellung meiner eigenen Programmierung auf OpenHab

Verfasst: 10. Feb 2022 21:13
von udo1toni
Ja, Proxmox hat es mir angetan...
Früher mal habe ich alles mit xen gemacht, aber mit zfs-Unterbau und einer UI für die wichtigsten Sachen macht Virtualisierung halt mehr Spaß...

Re: Umstellung meiner eigenen Programmierung auf OpenHab

Verfasst: 10. Feb 2022 22:49
von laoli
Ja, es ist einfach nur genial.
Hab früher (2015 hats glaube ich aufgehört) ESXi genutzt, mit Hardware Raid (ZFS ist einfach so viel genialer...).

Gehe jetzt von meinem RaidZ2 mit 7 2TB HDD's (absolut nicht ideal für VM's. Habe für ein paar VM's, die etwas flotter sein sollen, noch einen S-ATA SSD Mirror) auf 4*8TB CMR RaidZ2 + vorerst erstmal einen 2TB NVMe Mirror (auf Dauer kommt noch einer dazu).

War eben noch am planen wie ich migriere, aber werde einen Cluster bilden und über Netzwerk übertragen. Danach dann den alten Node entfernen.
Hatte auch drüber nachgedacht über Backups den neuen Server aufzusetzen, das scheint mir aber irgendwie ein Umweg und nicht sinnvoll.
Habe für den alten Server daher noch eine 2,5gbit Karte bestellt, der lief momentan auf einem 3*1gbit Bonding (da laufen die Kameras auch ein, daher ist da ein NIC Bonding gut anwendbar gewesen. Für die Migration hätte ich zwar noch 4-Port Intel Karten, aber keine Ahnung wie gut Proxmox multi TCP oder ähnliches macht und ich da dann überhaupt über 1gbit komme)

Der alte Server (S300 S7) hat halt die genannten HDD/SSD's, sowie zwei CPU's und voll bestückte 24*4GB RAM Riegel. Das frisst verständlich zu viel...

Ich gehe jetzt auf Consumer Hardware (i5-12500 + 128gb ram) und habe ein schönes und vor allem kurzes 19" Gehäuse gefunden, im Vergleich zu einer Supermicro AMD Epcy Plattform hat der Preis da deutlich entschieden (es ist ziemlich genau die Hälfte).
Die ganze ZFS ohne ECC Thematik scheint mir eine recht konstruierte Gefahr zu sein und ich habe ein recht gutes offline Backup Konzept (Proxmox Backup Server ist bei mir eher nicht so sinnvoll) mit Backups die über Jahre lagern, da kann ich einen Totalverlust des Storages (den ich als sehr unwahrscheinlich ansehe) auch mal verkraften ohne das ich davon Schaden trage.

Als Grafik habe ich momentan eine GTX1050TI durchgereicht, die wahlweise an eine W10 oder Linux VM durchgereicht wird (wäre genial wenn der Wechsel zwischen den VM's ohne Shutdown funktionieren würde :))


Weicht ein bisschen vom Forum Thema ab, aber musste mich durch die Strompreissteigerung recht spontan mit dem Serverwechsel beschäftigen.
Etwas passender:

Dem Proxmox Server werde ich auch noch irgendwie mqtt beibringen, aber da muss ich noch übergelegen wie das auf einem sicheren Weg läuft.
Momentan ist es so, das ich den PC (also die VM) neu starten lasse wenn ich ihn nicht mehr brauche (am nächsten Tag mache ich den Bildschirm an und direkt ist der Login Screen da, schon sehr nett :)).
Sinnvoller wäre, dass die VM runter fährt und durch einen 433MHz Schalter (da gibts ja die schönen Dinger die keine "Batterie" brauchen) oder ähnliches (Einfacher Check ob ich mit dem Handy im W-LAN bin, so kann man nach der Arbeit gut die VM's staten) bei Bedarf wieder hoch fährt.
Da mein Netzwerk aber recht klar unterteilt ist und durch eine recht restriktive Firewall getrennt, muss ich erstmal bewerten in wie weit eine Gefahr besteht wenn ich den Server direkt mqtt Toics lesen lasse.
Wahrscheinlich werde ich da, auch wenn das ein wenig paranoid erscheint (hab auch beruflich eine ISO27001 mit umgesetzt, da wäre sowas natürlich auch niemals nötig gewesen und währe vernachlässigbar.), irgendein Zwischenelement bauen, welches die meisten vorstellbaren Angriffe ausschließt.
Bspw: Wenn man einen ESP8266 die mqtt topic lesen lassen würde, der wiederum auf die entsprechenden Werte hardcodiert reagiert, könnte dieser über eine serielle Schnittstelle, welche auch nur auf diese Werte reagiert, dem Server Bescheid sagen dass er die VM startet oder stoppt (niemals dürfte der Server einfach drauf reagieren beliebige VM's zu steuern oder schlimmsten Fall Shell Injections durch mqtt zu ermöglichen...). Auf dem Server läuft dann ein Script welches die Werte über die serielle Schnittstelle auswertet, was wiederum hardcodiert auf die Werte arbeitet und somit injections großteils auschließt.
Den ESP8266 könnte man also fast als eine Art DMZ sehen.
Das ganze ist natürlich eine recht unwahrscheinliche Gefahr, bis jetzt ist mein "SMART" Netzwerk mit recht vertrauenswürdigen Geräten bestückt (das kann sich ja auch ändern) und vom Internet getrennt, aber trotzdem ist es gut Gefahren auszuschließen.
Trotzdem will ich Befehle an die meist gefährdeten Maschine im Netzwerk so gut wie möglich ausschließen (wenn das eher "unsichere" SMART Netz über mqtt mit dem Server spricht, würde eine Schnittstelle entstehen die eventuell Ausnutzung von Schwachstellen ermöglicht).

Werde morgen erstmal gucken das ich das neue System ans laufen bekomme und dann geht es weiter mit OpenHAB

Re: Umstellung meiner eigenen Programmierung auf OpenHab

Verfasst: 11. Feb 2022 00:58
von udo1toni
Da bin ich ja mit meinen 64 GByte RAM ja geradezu arm. :) Mein System ist ein ziemlich kruder Eigenbau, weil ich leider nur zwei Netzwerkschränke mit je 12 HE verbauen konnte, also 600 mm tief incl. Türen, da bin ich schon sehr mit den verwendeten Geräten eingeschränkt. (19" 4HE mit Frontschnittstellen, Netzteil habe ich hinten ans Gehäuse angeflanscht und vorne stattdessen einen 5 x 3,5"-Laufwerkskäfig eingebaut...)
Bisher habe ich auch nur 1 GBit/s angebunden, wobei die zwei Schnittstellen jeweils 10 GBit/s könnten :D aber dann müsste ich schon den Switch tauschen, und mal ehrlich, ich bin der einzige im Haus, der das eine GBit/s überhaupt ausnutzt, zu 99 % idlet das System vor sich hin. andere Rechner als der Server haben ausschließlich 1 GBit/s, ich könnte höchstens noch den "alten" Server mit immerhin zweimal 1 GBit/s anschließen...
Ich repliziere die automatischen Snapshots allerdings täglich auf ein kleines 2. System (HP Microserver... AMD Turion II Neo N54L, das war damals schon fast Taschengeld... ohne Platten keine 300 €) und könnte so ein Replikat notfalls auch in vertretbarer Zeit hochfahren, obwohl die Kisten nicht im Cluster hängen.

Kennst Du sysops.tv bei youtube? Der Macher, Christian Zengel sitzt mit seiner Firma in Aschaffenburg und bietet Infrastruktur für kleine bis mittelständische Unternehmen an, und er ist großer Verfechter von Proxmox und OpenSource. Seine Live Sendungen sind meist recht chaotisch, weil bis auf das Thema komplett ungeplant und auch nur dürftig vorbereitet, aber gerade das macht den Charme aus :) und seine Kenntnisse im Bereich Desaster Recovery und Absicherung über ZFS Snapshots und außer-Haus-Backups sind ziemlich genial.