Antwort
Okt 19, 2020 - 17:38
Meine ganz persönliche Meinung, Du verlangst da wohl dem AIO Gateway V5 Plus zu viel Dinge ab, für die es einfach auch nicht von der Performance ausgelegt ist.
Das AIO Gateway V5 Plus hat ein 84 MHz ARM Cortex als Prozessor, das AIO Gateway V6 Plus einen 1,2 GHz Quad-Core ARM als Prozessor und ein 84 MHz ARM Cortex als Co-Prozessor. Zum Vergleich hat selbst ein Raspberry 4 mit einem Quad Core 64-bit ARM-Cortex A72, der auf 1.5GHz getaktet ist, deutlich mehr Leistung als ein AIO Gateway V5 Plus oder AIO Gateway V6 Plus.
Ich würde an Deiner Stelle vielleicht mal ausprobieren ob es ein Unterschied macht, wenn Du zu Testzwecken einfach mal ein NEO Server auf einem performanteren System aufsetzt und die gleichen Sachen laufen lässt.
Wenn auch das keine wesentliche Verbesserung bringen sollte, bleibt dann eher noch Systeme einzusetzten, die für so komplexe Dinge auch geeignet sind. Ich nutzte für so was PHP mit OPcache, da werden Skripte nicht zur Laufzeit kompiliert sondern mit OPcache wird die Berechnung nur einmal durchgeführt und das vorkompilierte, maschinenlesbare Skript in einem Cache gespeichert. Da es aus dem Cache ausgeführt wird, kann so ein Skript ultraschnell geladen werden und man hat keine CPU Belastung.
Das AIO Gateway V5 Plus hat ein 84 MHz ARM Cortex als Prozessor, das AIO Gateway V6 Plus einen 1,2 GHz Quad-Core ARM als Prozessor und ein 84 MHz ARM Cortex als Co-Prozessor. Zum Vergleich hat selbst ein Raspberry 4 mit einem Quad Core 64-bit ARM-Cortex A72, der auf 1.5GHz getaktet ist, deutlich mehr Leistung als ein AIO Gateway V5 Plus oder AIO Gateway V6 Plus.
Ich würde an Deiner Stelle vielleicht mal ausprobieren ob es ein Unterschied macht, wenn Du zu Testzwecken einfach mal ein NEO Server auf einem performanteren System aufsetzt und die gleichen Sachen laufen lässt.
Wenn auch das keine wesentliche Verbesserung bringen sollte, bleibt dann eher noch Systeme einzusetzten, die für so komplexe Dinge auch geeignet sind. Ich nutzte für so was PHP mit OPcache, da werden Skripte nicht zur Laufzeit kompiliert sondern mit OPcache wird die Berechnung nur einmal durchgeführt und das vorkompilierte, maschinenlesbare Skript in einem Cache gespeichert. Da es aus dem Cache ausgeführt wird, kann so ein Skript ultraschnell geladen werden und man hat keine CPU Belastung.
Von
Hallo Fonzo,
eine Meinung von einem so erfahrenen User wie Du es bist, ist mir sehr wichtig.
Ich habe mir daraufhin die Daten mal etwas genauer angeschaut und denke dass Du vollkommen Recht hast, vielleicht mute ich dem System etwas zu viel zu. Schwerpunkt der von mir angestrebten Optimierung muss also eine Systementlastung sein um wieder mehr Stabilität und akzeptable Responsezeiten zu erhalten.
Mit der aktuellen Zusammensetzung bin ich bis auf die geschilderten Probleme eigentlich zufrieden. Basis meiner Homeautomation ist der sehr performant und stabil laufende KNX-Bus. Die darauf aufgesetzte Visualisierung über den Neo-Creator erlaubt mir ansprechende Fernbedienungen zu erstellen. Das aio-gateway stellt eine Schnittstelle zu unterschiedlichsten Systemen und Geräten her und gestaltet das ganze sehr flexibel. Der Neo-Server kompensiert über den AM und das JScripting (wenn auch leider sehr eingeschränktes JS) die auf dem KNX fehlenden logischen Verknüpfungsmöglichkeiten. Fehlt eben nur noch die Performance.
Deshalb meine Frage an Dich: Auf welcher Hardware läuft Dein PHP? Wie beurteilst Du die Möglichkeiten die PHP bietet gegenüber JS? Ich stehe hier vor einer Grundsatzentscheidung und werde natürlich gerne Deinen Vorschlag, die aktuelle Konstellation auf einer performanteren Basis auszuprobieren, testen. Die Neo-Serverversionen nebst AM und Scripten sollten ja hoffentlich kompatibel sein sodass keine großen Anpassungen notwendig werden. Zum V6 + sollte eigentlich Mediola etwas sagen können...wie funktioniert der Umzug vom V5+ und rentiert sich selbiger um meine Problematik zu lösen...
Von
Ich nutze selber IP-Symcon als ergänzendes System zu NEO, das nutzt zur Zeit PHP 7.3.x (x64 Thread Safe) als Sprache. Als Produktivsystem läuft bei mir eine SymBox neo auf Hutschiene, diese gibt es auch mit direkter KNX Bus Anbindung. Ich selber nutzte aber nach wie vor Homematic IP mit einer CCU3 in Kombination. Weiterhin läuft bei mir noch immer ein Windows Server, der als Medien-, Fileserver, TV-Server dient und als Domain Controller, auf diesem läuft auch noch eine weitere Instanz von IP-Symcon.
Der NEO Server macht bei mir selber an sich nichts aufregendes, der scheibt nur einzelne Daten an IP-Symcon, damit diese dort aufgezeichet werden und dann der NEO Remote als Graph in einem Webseitenelement zur Verfügung gestellt werden können. Groß verschachtelte Skripte im NEO Server nutzte ich selber keine, da mir das zu kompliziert ist, und man Skripte auch nicht sinnvoll strukturieren kann im NEO Sever bzw. unterschiedliche Skripte zeitgleich ausführen lassen kann. Das Hauptproblem im NEO Server ist das Du eben auf das Ende der Abfrage warten musst, daher ist das für mich selber auch höchstens eine Option für ganz einfache Dinge. Den NEO Server spreche ich selber aus IP-Symcon über Medila Gateway Services an, falls ich doch mal was aus dem NEO Server auslesen will bzw. etwas über den NEO Server schalten. Ansonsten schalte ich auch mein AIO Gateway direkt aus IP-Symcon über die API des AIO Gateways und nicht über den NEO Server, hat den Vorteil das man so auch HomeKit bzw. Siri nutzten kann.
Die Möglichkeiten generell von JS gegenüber PHP kann ich schlecht beurteilen, ich kann höchstens ein persönlichen direkten Vergleich ziehen zwischen den Möglichkeiten, die man mit NodeJS im NEO Server hat und den Möglichkeiten die man mit PHP in IP-Symcon hat.
Wesentliche Unterschiede sind:
- IP-Symcon unterstützt PHP vollständig mit zusätzlichen IP-Symcon spezifischen Befehlen, ich kann also auch alles was mit PHP möglich ist nutzten, weiterhin gibt es für alles eine ausfühliche Dokumentation, so das ich auch genau weis, wie was zu nutzten ist
- Der NEO Server lässt im Gegensatz dazu nur sehr eingeschränkt eine Nutzung von NodeJS zu, Du kannst nicht einfach irgendwas nachladen, das funktioniert nicht. EIne ausführliche Dokumentation von Mediola zu Skript Funktionen sucht man auch vergeblich
- IP-Symcon hängt bei Bedarf direkt auf dem KNX Bus es bedarf also nicht zwingend eines weiteren KNX IP Gateways.
- IP Symcon unterstützt wesentlich mehr DPTs bei KNX als das über den NEO Server möglich ist
- Mit PHP bzw. IP-Symcon kannst Du auch Schnittstellen nutzten wie Websocket, MQTT, Clientsocket, Serversocket, UDP Socket die Du im NEO Server einfach nicht zur Verfügung hast, dort gibt es höchstens ein HTTP Trigger oder ein Trigger von den wenigen Geräten, die der NEO Server als Trigger zulässt.
- Skripte laufen in IP-Symcon auch zeitgleich ab und werden daher von der Last verteilt. Im NEO Server kannst Du keine Parameter einfach an ein anderes Skript übergeben, das geht bei IP-Symcon in PHP über IPS_RunScriptEx.
- Komplett eigene Klassen zu schreiben ist mit dem NEO Server nicht möglich. Mit PHP in IP-Symcon schon. Daher kann man IP-Symcon und PHP auch nutzten um einfach Geräte in NEO einzubinden und dann über den Gerätemanger in NEO zu importieren, von Geräten die NEO bzw. Mediola selber nicht unterstützt, was ich selber ausführlich nutzte. Ich steuere so z.B. meine Echo Geräte über NEO oder meine Bewässerung, Waschmaschine usw. über Nutzung von eigenen PHP Klassen bzw. ergänzenden PHP Modulen von anderen Nutzern. Das Gerät wird dann ganz normal wie jedes andere Gerät in NEO importiert und visualisiert. Eigene Systeme bzw. Geräte, die Mediola selber nicht unterstützt, kannst Du keine mit dem NEO Server anlegen. Dazu müsstest Du höchstens eine Vielzahl an Variablen nutzten, nur als zusammenhängendes logisches Gerät kannst Du das dann auch nicht NEO nutzten
- In Deinem Fall wäre es also wenn man PHP nutzt es in PHP einfach sinnvoll ein Geräteklasse für Fenster/Türabfragen zu schreiben, vielleicht gibt es so was auch schon, das habe ich jetzt nicht geschaut, schließlich hat jedes Fenster die gleichen Objekteigenschaften. Das erlaubt Dir dann auch den Code besser wieder zu verwerten und einfacher zu strukturieren. Mit PHP würde man auch die 20 Fenster und Türen nicht mit einem Skript abfragen, sondern den umgekehrten Weg gehen. Man würde auf eine Abfrage gänzlich verzichten und jedes Fenster sobald eine Zustandänderung vorliegt ein zentrales Skript triggen lassen. So hast Du auch nur dann überhaupt ein Skript das ausgeführt wird, wenn überhaupt eine Zustandsänderung eintritt sonst passiert gar nichts und dementsprechnd hast Du dann auch keine ausführenden Skripte die Last erzeugen.
Du brauchst glaube ich noch nicht mal was selber in PHP zu schreiben sondern kannst auch für PHP mit IP-Symcon fertige Sachen nutzten wie
https://github.com/daschaefer/SymconAlarmSystem
https://github.com/styletronix/SX_SymconExtension
Ob sich der Umzug von einem V5 Plus auf ein V6 Plus lohnt, mag ich persönlich nicht beurteilen, so lange das V5 Plus jetzt keine Geräte zusätzlich unterstützt, die ich persönlich nutzte, die nicht schon vom V5 Plus unterstützt werden, sehe zumindest ich selber zur Zeit keinen Grund zu wechseln. Der NEO Server bleibt ja der Gleiche und auch die Möglichkeiten, die Du nutzten kannst, da hat sich ja gar nichts geändert. Daher würde ich da erst mal schauen ob das in Deinem Fall einen Unterschied macht, wenn Du einen NEO Server auf einem Raspberry 4 aufsetzt, der ist zwar performanter als ein AIO Gateway V6 aber vielleicht zumindest im Ansatz vergleichbar. Wenn das keinerlei Verbeserung bringt im Vergleich zum V6 Plus bei Deinen Skripten, dann bringt Dir ja auch der Wechsel auf ein V6 Plus rein gar nichts. Falls doch, kannst Du Dir ja dann überlegen auf ein V6 Plus zu wechseln, wenn die CPU alleine den Ausschlag geben sollte, oder Du behällst eben den Raspberry und lässt den zusätzlich laufen, da kannst Du dann auch weitere Dinge installieren wenn Du willst, was auf einem AIO Gateway V6 nicht möglich ist. Ich würde aber fast vermuten das dies auch einfach mit der Art und Weise zusammenhängt wie der NEO Server eben arbeitet. Das kannst aber nur Du durch ausprobieren testen.
Falls Du einen also Raspberry über hast, kannst Du da ja mal mit rum probieren. EInerseits kannst Du da auch ein performateren NEO Server aufsetzten im Vergelich zum AIO Gateway V5 Plus und schauen ob die bisherigen Skripte besser bzw. performanter laufen und wenn Du willst kannst Du auf einem Raspberry auch IP-Symcon zu Testzwecken installieren und schauen ob fertige PHP Module oder eigene Klassen den Job effiktiver lösen. Eingebunden wird das im Fall von IP-Symcon dann alles ganz normal über den Gerätemanager in NEO und das NEO Plugin IP-Symcon. Mit aktiven OPcache sollte die Systemlast bei PHP in der Regel auch bei komplexeren Dingen nicht über ca. 40% CPU Last gehen.
Von
Vielen Dank,
wow, das muss ich erst mal in aller Ruhe verinnerlichen. Aber ich denke ausführlicher kann man es nicht beschreiben. Da ich wie es aussieht, in Zukunft wesentlich mehr Zeit in meine Hausautomation investieren kann, werde ich sicherlich noch mit der ein oder anderen Frage auf das Forum zukommen. Aber eines muss unbedingt sein, das System muss beherrschbar bleiben, nicht alleine von mir sondern auch von Dritten welche es eventuell irgendwann einmal übernehmen werden. Eine konsequente und ausführliche Dokumentation war mir immer wichtig und wird es auch bleiben. Ich meine damit einerseits meine eigene, bezüglich aller von mir erdachten Umfänge und Funktionen, andererseits natürlich auch die über das eingesetzte System und die Programmiersprachen an sich. Das was Du diesbezüglich erläutert hast stört auch mich von Beginn an und wäre alleine schon ein Grund um neu aufzusetzen. Wenn sich hier bei Mediola nicht bald etwas grundlegendes ändert, sehe ich in der eigentlich sehr guten Komposition keine Zukunft; es wird ohne entsprechende Maßnahmen nicht aus dem Hobbystatus herauskommen. Aber vielleicht möchte man das auch gar nicht. Wir werden sehen.
Von
Eine Dokumention kann man zum Beispiel bei IP Symcon automatisch erstellen lassen, für den NEO Server kenne ich da momentan kein Tool für. Das man so ein System übernehmen kann ist extrem wichtig für den Werterhalt, um so wichtiger ist es aber auch das zum Beispiel auch von Integratoren beherscht wird, für den Fall das man das eines Tages nicht mehr selber machen will. Hier ist IP-Symcon inbesondere im KNX Bereich seit Jahren eine feste Größe zur Automation und Datenmonitoring und im Zweifelsfall wird da auch ein Nachfolger einen Integrator finden, der sich mit so was auskennt. Der NEO Server ist aus meiner persönlichen Sicht aber eher für Einsteiger gedacht, die eben einfach mit dem Block Editor sich simple Task zusammen klicken wollen. Das was Du da machst, ohne die Skripte jetzt im Detail zu kennen, hört sich schon sehr fortgeschritten an für den NEO Server und wahrscheinlich wirst Du in der Hinsicht dann auch nicht mehr viele Nutzer finden, die mit dem NEO Server in der Komplexizität mit Skripten arbeiten, weil dieser halt doch seine Grenzen hat, aber eben durchaus einfach für simple Prozesse zu bedienen ist. Am besten ist es immer ein System unterstützt bestimmte Dinge von sich aus und man muss keine individuellen Umwege oder Lösungen gehen, denn diese individuellen Lösungen wird am Schluss so oder so wahrscheinlich keiner außer Dir selber im Detail verstehen, weil Du diese auch erdacht hast. Und das Problem beim NEO Server ist auch das Du solche individuellen Dinge nicht kapseln kannst um diese zum Beispiel anderen einfach zur Verfügung zu stellen.
Den NEO Server gibt es ja auch noch nicht immer, der wurde erst später ergänzt ob im Mediola System nicht grundsätzlich von der Ergänzung von externen Lösungen wie IP-Symcon abhängig zu sein und weil die NEO Remote halt keine 24/7 Instanz darstellt, die Ereignisse auch immer abarbeiten kann. Dennoch ist der NEO Server vom Fokus eben ganz klar auf einfache Handhabbarkeit ausgelegt und richtet sich daher eben auch ganz klar an Einsteiger. Diesem Anspruch das einfache Aufgaben auch einfach anzulegen sind wird der NEO Server ja auch voll gerecht. Da der NEO Server auch keine Profisysteme wie SPS unterstützt oder weitere gängige Bus Systeme wie LCN, MBus, Modbus usw. wird dieser halt auch nicht im Profibereich eingesetzt, sondern bleibt halt den Hobby Nutzern vorbehalten bzw. vielleicht einem Elektriker, der ein bischen was zusammen klicken will.
Für mich selber ist der NEO Server selber ein schmückendes Beiwerk, ersetzt aber kein professionelles Hausautomationssystem. Da NEO für mich aber immer vom Fokus eine Visualisierung für externe Gateways und Systeme war und ist, tut das für mich auch keinen Abbruch für die Nutzung von NEO selber. Ob man jetzt IP-Symcon, Fibaro, Rademacher, Homematic IP usw. nutzt NEO stellt halt die Visualisierung dafür bereit. In sofern ist NEO für mich eine gute Komposition aus indiviuell anpassbarer Oberfläche aber eben auch Systemen die man über ein NEO Plugin einbinden kann. Was mir leider etwas fehlt sind ein paar grundsätzliche Funktionen in der NEO Remote selber, aber ich habe mir inzwischen angewöhnt die fehlenden Funktionen durch das Nutzten von Webseitenelementen zu kompensieren. Das AIO Gateway nutzte ich bei mir halt auch seit Jahren um IR auszuwerten bzw. halt ein paar Funksysteme anzusteuern.
Den NEO Server selber bzw. das AIO Gateway steuere ich halt direkt aus IP-Symcon an, die Remoteoberfläche bleibt deshalb ja NEO daran hat sich nie was geändert.
https://github.com/demel42/IPSymconMediolaServer
https://github.com/Wolbolar/IPSymconAIOGateway
Dir erst mal viel Erfolg bei der Suche die Performance zu verbessern.
Von
Da stellt sich mir nur noch die eine Frage, wie finde ich einen guten Einstieg in IPSymcon? Habe vor einigen Monaten mal ein wenig damit gespielt aber den Einstieg nicht so richtig gefunden. Allerdings habe ich mir damals auch nicht wirklich Zeit dafür genommen
Von
Als Einstieg ist es wohl am besten sich mal die Zeit zu nehmen und ein Video anzuschauen
https://www.youtube.com/watch?v=1H39DfH7_p4
da gibt es noch etliche mehr insbesondere auch für KNX.
Es gibt es ja auch eine ausführliche Dokumentation. Aber an sich sind die Nutzer von IP-Symcon oder auch die Integratoren, die im Forum aktiv sind, sehr geduldig, Man sollte nur zumindest mal grundsätzlich vielleicht die einführende Dokumentation und Videos gelesen bzw. geschaut haben.
Ansonsten wenn man sich mal eingelesen hat hilft nun fragen, fragen und nochmals fragen und das eben möglichst konkret.
Da ist noch niemand der Kopf abgerissen worden. Ich selber habe von KNX in allen Details keine Ahnung, da kennen sich dann diejenigen viel besser aus, die so was alltäglich in Betrieb nehmen bzw. große Anlagen betreuen. Aber auch von solchen Leuten bekommt man auf noch so ausgefallende Fragen meist eine Antwort. Ich kann mich erinnern als ich damals angefangen habe, gab es auch noch nicht so viele Module, da war fast alles mit Skripten zu lösen, da war meine Lernkurve auch sehr schwer. Aber wenn man etwas Geduld hat und die Prinzipen verstanden hat und erkannt hat was damit möglich ist, dann hat man auch sehr schnell große Erfolgserlebnisse. Jetzt wo es für jeden noch so erdenklichen Anwendungsfall meist auch noch ein PHP Modul gibt, muss man letzlich nur schauen ob es schon ein Modul gibt und dies installieren, das erleichtert den Einstieg inzwischen ungemein im Vergleich zu früher. Der einzige "Nachteil" ist halt das PHP Module einfach funktionieren und man sich keine Gedanken machen muss wie das funktioniert, daher lernt man selber auch nichts dazu, außer vielleicht das Modul zu installieren. Da war das verstehen von Skripten sehr viel mühsamer, aber eben auch nur denen vorbehalten, die sich damit beschäftigen wollten und die Zeit genommen haben, dafür hat man anhand von Skripten deutlich mehr gelernt, wenn man selber Lösungsansätzte schreiben will.
Als Einstieg bzw. zum Testen ist es wohl das Beste so viel wie möglich einfach über bestehende Module zu lösen.
Wenn man dann so weit Fuß gefasst hat und sich auch ein wenig mit PHP auseinander gestzt hat kann man dann erste komplexere Skripte selber schreiben oder gleich anfangen eigene Klassen bzw, Module zu erstellen.
Wenn es um NEO geht bzw. einbinden von IP-Symcon in NEO oder das schalten von NEO aus IP-Symcon kannst Du ja auch hier Fragen stellen wenn Du willst, wenn das auf Dauer überhaupt näher in Frage kommen sollte.
Neuen Kommentar hinzufügen