NEWS
Grundfragen zu Blockly
-
Guten Abend zusammen... durch das Einführen von Überschußladen mittels evcc auf einem Pi4 bin ich nun auch zum iobroker gekommen, um ggf mein Smarthome (homee) durch diesen zu erweitern oder gar zu ersetzen.
Aus diesem Grund hab ich mir einige Kurse zum Thema vis und eben Blockly zu Gemühte geführt.
Hab viele Blocklys angeschaut und versucht Dinge für mich herauszunehmen und in meinem System anzupassen...
Grunddaten: Pi4 mit Rasberry OS , einige Shelly Fenstersensoren, Plugs, Plus 2PMS, dazu Homee mit Enocean und Zigbee. Als Adapter hab ich Alexa, Shelly, homee, evcc, Solax und einigen andere für Wetter, Forecast , fritzbox etc.Fragen: Kann ich Datenpunkte aus den Adapter von zb evcc benutzen, die sich aber letztlich auf zb den Solax Wechselrichter beziehen.?
Wann macht es Sinn eigene Datenpunkte anzulegen und warum? Ich hab so viele Infos dazu gelesen und komme trotzdem zu keinem sinnigen Ende . Warum eigene Datenpunkte? Ich hab das natürlich mal probiert und diverse verschieden Punkte kreiert, aber ich finde keinen Sinn, weil letztlich für mich da nix drin steht.Benötigt man so tiefgreifende Programmierkenntnisse, um dann solche Punkte mit Objektdaten zu füttern?
Ich versuchen seit Tagen für mich logische Blocklys zu bauen, aber ich finde im Laufe dann nicht den für mich passende Baustein, irgendwie... bekomme es nicht mal hin, dass beim Öffnen eines Fensters ein Shelly Plug an bzw aus geschaltet werden soll...Ich brauch nen kleinen Kick, um den Drive für Blockly zu bekommen
Die Shelly kann ich noch nicht über den iobroker steuern, dann homee hier als mqtt Broker eingetragen ist und es nur einen geben kann. Solange ich nicht sicher mit iobroker umgehen kann, wird das wohl auch erstmalso bleiben
-
@docsnyder7 sagte: bekomme es nicht mal hin, dass beim Öffnen eines Fensters ein Shelly Plug an bzw aus geschaltet werden soll.
falsch und wahr sind keine Objekt-IDs. Außerdem müssen Adapter-Datenpunkte (Shelly) mit "steuere" geschrieben werden. Wenn die Datenpunkte vom Typ "boolean" sind:
Wert
findet man unter "Trigger": -
@paul53 Vielen Dank! Für mich steht da jetzt, dass der Shelly mit einem WERT gesteuert werden soll.. geht das Blockly dann mit einem "falls" Baustein weiter... falls "Fenster" true, dann "Shelly" auch true?
-
@docsnyder7 sagte: geht das Blockly dann mit einem "falls" Baustein weiter... falls "Fenster" true, dann "Shelly" auch true?
Weshalb noch ein "falls"? Der Wert vom Fenster (Trigger-Datenpunkt) wird direkt an den Shelly gesendet.
-
ich weiß nicht ob du schon mit dem Logik-Teil anfangen solltest.
Mal etwas grundsätzliches, falls du das nicht schon selbst erkannt hast.
iobroker ist eine middleware. d.h. für verschiedene Geräte unterschiedlichster Hersteller und bauarten stellt iobroker eine Einheitliche Sicht auf die von den Geräten angebotenen Daten dar, wie auch eine einheitliche Steuerebene.Um Geräte eines Herstellers einzubinden benötigt man Adapter. Diese übersetzen die geräteindividuelle Sicht mehr oder weniger in Datenpunkte und hält diese auch aktuell
Da die Baumstruktur, welche die Adapter erzeugen mehr oder weniger langweilig und nicht besonders ansprechend ist, gibt es die visualisierungen.
Dort kannst du die Datenpunkte (am Beispiel von vis) über verschiedenste Arten von widgets anzeigen lassen.
Für die Steuerung der Geräte kann man dies auch über verschiedene widgets machen in die man dann ebenfalls den richtigen Datenpunkt einträgt um bspw durch Knopfdruck etwas ein und auszuschalten oder per Regler etwas hoch und runter regelt. anzeigen lassen kann man sich das im Browser oder über eine der Apps in ios oder androidDas wäre erst einmal die Basis. Ohne das du deine Geräte einbindest, wirst du nicht soviel machen können. Als am besten mal ein shelly einbinden und den visualisieren oder Steuerelemente in vis bauen.
Nächste Stufe des Fortschritts wäre dann, wenn die das anzeigen der Werte, welche die Geräte direkt bereitstellen nicht mehr ausreicht, dann kannst du mit den verschiedenen Logikmodulen von iobroker dir eine erweiterte Steuerung bauen, die auch über mehrere Geräte gleichzeitig gehen kann
Beispiel: du drückst einen Knopf und der Fernseher geht an, das Licht dimmt auf ein dezentes rot, der Rolladen fährt halb runter, die Getränkebar fährt automatisch hoch
Dann benötigst du entweder den Szenario-Adapter oder eines der Logikmodule (Blockly, javascript, node-red), je nachdem wie fein die Steuerung sein soll.
Darin kannst du dann bspw auch Werte berechnen, die dir die Geräte so gar nicht bereitstellen. Gespeichert werden die berechneten Werte dann auch als (eigene) Datenpunkte.
Datenpunkte lassen sich auch über die zeit historisieren (History-Adapter) um sie bspw in Diagrammen beliebig aggregieren und anzeigen zu lassen.
Beispiele gibt es hier im Forum genug. -
@paul53 said in Grundfragen zu Blockly:
Weshalb noch ein "falls"? Der Wert vom Fenster (Trigger-Datenpunkt) wird direkt an den Shelly gesendet.
Ok verstanden… aber jetzt muss der Shelly ja noch wissen, welche Reaktion er geben soll…
@OliverIO vielen Dank für Erklärungen. Das Iobroker als quasi Schnittstelle fungiert zwischen verschieden Systemen, Dect, Zigbee etc… das hab ich verstanden. Mit der Vis tue ich mich tatsächlich etwas leichter, hab mir da schon paar Dashboards gebaut, nicht besonders , aber für den Lerneffekt. Aber auch da scheitere ich an so gefühlt simplen Sachen wie dem Bulb… was kommt da wo rein, welcher Datenpunkt… ich lese haufenweise Anleitungen und versuche da Sachen für mich rauszunehmen, aber es scheitert manchmal. Da hatte ich gehofft, dass die Logik hinter den blockly irgendwo einfacher ist. Aber wahrscheinlich muss ich echt eine der Online Kurs belegen….
-
Ok am Beispiel bool Button in Form einer Glühbirne
Der kann zum einen einfach einen binären Zustand anzeigen (deswegen heißt er auch bool Button)
An/aus, wahr/falsch, 1/0. Die Werte sind im Abschnitt values konfigurierbar
Weiterhin kannst du im Abschnitt Common 3 object ids einstellen
Working = datenpunkt der für die Anzeige ausgewertet wird
Signal = datenpunkt über den gesteuert wird, wenn man den Button betätigt.
Dann noch battery, datenpunkt der den Batteriestand anzeigt. Wenn die Batterie leer ist, wird am Button ein weiteres kleines Icon angezeigt, der darauf hinweist, das ist aber nur optionalDie ganzen Widgets sind allerdings sehr individuell, das sie von unterschiedlichsten Programmierer erstellt wurden. Manchmal gibt es eine Hilfe, die über das kleine i Symbol oben links im Reiter Widgets abgerufen werden kann.
-
@oliverio wow das hilft schonmal… vielen Dank! Da setzt ich mich nachher mal dran.
Doch wie sieht’s mit dem blockly aus… alleine aus dem Wert des Objektes weiß der Shelly in meinem Fall doch nicht was er tun soll, oder nimmt er quasi den selbe Zustand an… True bei True, false bei false. -
Ja genau, meist wird es auch der gleiche datenpunkt sein für Anzeige wie auch für die Steuerung
-
@oliverio said in Grundfragen zu Blockly:
Signal = datenpunkt über den gesteuert wird, wenn man den Button betätigt.
brauch ich aber nicht, wenn der Button als reiner optischer Hinweis dienen soll, zb das fenster auf ist...
ansonsten hier der on/off datenpunkt des shelly rein, weil ich den dan mit dem button wieder umschalten könnte? -
@docsnyder7 sagte in Grundfragen zu Blockly:
der on/off datenpunkt des shelly rein
der muss natürlich auf jedenfall unter ObjektID rein.
Wenn nur zur optischen Überwachung "nur lesend" anklicken, wenn zusätzlich geschaltet werden soll dann natürlich nicht -
@djmarc75 said in Grundfragen zu Blockly:
der muss natürlich auf jedenfall unter ObjektID rein.
Wenn nur zur optischen Überwachung "nur lesend" anklicken, wenn zusätzlich geschaltet werden soll dann natürlich nichtok.. hatte ich so auch verstanden, aber falls der Button auch zum schalten verwendet werden soll... shelly on/off auch unter Signal ID....
-
@docsnyder7 sagte in Grundfragen zu Blockly:
auch zum schalten verwendet werden soll... shelly on/off auch unter Signal ID....
Nein.
Wichtiger wäre aber erstmal zu Deiner eigentlichen Grundfrage zu Blockly zurückzukehren und Dich erstmal mit dieser Thematik (Logikmaschinen - gibt es ja nicht nur Blockly) auseinanderzusetzen, zu verstehen und umzusetzen
(mein Vorschlag) -
@djmarc75 da hast Du Recht! Da ich allerdings auch ein Freund von learning by Doing bin.. werd ich noch mehr Lesen und paar SAchen einfach probieren und versuchen die Ergebnisse entsprechend auszuwerten, zu verstehen und ggf zu korrigieren
-
@docsnyder7 sagte in Grundfragen zu Blockly:
Da ich allerdings auch ein Freund von learning by Doing bin
lobenswert hier !!!
-
ich packe mal meine eigene Fred aus....
hab jetzt einige Blocklys gebaut, teils auch nur um des Verständnisses wegen, teils aber auch aus einem Nutzen heraus.
Nun stellt sich aber eine Frage...ich möchte das eine RGB Lampe rot bzw grün leuchtet, wenn beim Verlassen des Hauses ein Softbutton doppelgeklickt wird und alle Fenster zu sind (Grün) oder eben rot, wenn noch eins offen/gekippt ist.```
es soll also alle Fenster abgefragt werden und entsprechend die Farbe engezeigt werden...
ich tue mich schwer die Werte der Sensoren korrekt abzufragen... wenn ich über Attribute und dann mit Object ID = versuchen passt nur ein Textfeld rein, weder Logit WAHR/Falsch noch Mathe 0/1was besagt denn die Fehlermeldung im Log unten?
-
@docsnyder7 sagte: es soll also alle Fenster abgefragt werden
Wie viele Fenster sind es?
@docsnyder7 sagte in Grundfragen zu Blockly:
wenn ich über Attribute
Mit "Attribut" separiert man ein Attribut eines Javascript-Objektes.
Für die Feststellung "alle geschlossen" müssen die Werte der Fenster-Datenpunkte geprüft werden.Dafür kann man eine Liste mit den Datenpunkt-IDs aller Fenster verwenden, deren Werte in einer Schleife geprüft werden:
-
@paul53
18 Fenster sollen abgefragt werden...WOW... auf sowas komme ich im Leben nicht
ne tolle Idee... ich drösel mir die auseinander um die Zusammenhänge zu verstehen...
-
so.... ne Frage zu deinem Muster @paul53
Das mit der Schleife ist mir nicht ganz klar.... setze Lampe auf grün und dann prüfe die id´s ?ich hab das jetzt erstmal so gelöst.... schaut zwar nicht galant aus.. aber es klappt soweit
-
@docsnyder7 sagte: setze Lampe auf grün und dann prüfe die id´s ?
... prüfe die Werte der Datenpunkte aus der Liste
idsFenster
. Bei dem ersten offenen Fenster wirdfarbe
auf rot gesetzt und die Schleife kann abgebrochen werden.
Ist der Datenpunkt "OnOff" vom Typ "Zahl" oder vom Typ "Logikwert"?