NEWS
Grundfragen zu Blockly
-
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"? -
@paul53
sowohl als auch... die shelly haben 0 und 1, die enocean haben true und falseSuper erklärt...die Schleife
-
@docsnyder7 sagte: sowohl als auch...
... und der A60 RGBW?
Du schreibst erst true ("umschalten") und 8 s später eine 0 in den Datenpunkt. -
@paul53
warum heisst umschalten =true... für mich ist umschalten einfach umschalten auf den anderen Wert... 0 auf 1 oder true auf false.. oder nicht
Die A60 hat 0 und 1bei den Sensoren hab ich halt shellys und Enocean
-
@docsnyder7 sagte: warum heisst umschalten =true...
Das ist der Javascript-Code von "umschalten":
getState("Object ID", function (err, state) { setState("Object ID", state ? !state.val : true); });
!state.val wandelt eine Zahl (0) in einen Logikwert (true).
@docsnyder7 sagte in Grundfragen zu Blockly:
Die A60 hat 0 und 1
Dann verwende "steuere" und schreibe die Zahl 1.