Fragen zu: .items/.rules und HM Heizkörperthermost
-
- Beiträge: 6
- Registriert: 24. Apr 2018 19:33
Fragen zu: .items/.rules und HM Heizkörperthermost
Hallo hätte ein paar Fragen zu den Homematic Heizkörperventilen und einmal generell zu einem Regel aufbau
1. Wenn man gewisse Channels über die PaperUi verlinkt sind sie als ReadOnly konfiguriert (wie z.b. Niedrieger Batteriezustand), wenn ich die Channels aber in einer Items Datei anlege kann ich sie betätigen, wie kann ich das in der Items Datei auf ReadOnly einstellen?
2. Die Thermostate sind im channel „control_mode“ ein Selections Item sprich wenn ich drauf drücke kann ich den Modus auswählen zwischen mehreren Optionen, wie leg ich das in einer Items datei an?
3. Wie baue ich eine Regel auf die erst etwa anderes schaltet wenn 3 andere Items auf „OFF“ sind?
Items & Rule Basics kann ich schon
Lg,
Blaccky
1. Wenn man gewisse Channels über die PaperUi verlinkt sind sie als ReadOnly konfiguriert (wie z.b. Niedrieger Batteriezustand), wenn ich die Channels aber in einer Items Datei anlege kann ich sie betätigen, wie kann ich das in der Items Datei auf ReadOnly einstellen?
2. Die Thermostate sind im channel „control_mode“ ein Selections Item sprich wenn ich drauf drücke kann ich den Modus auswählen zwischen mehreren Optionen, wie leg ich das in einer Items datei an?
3. Wie baue ich eine Regel auf die erst etwa anderes schaltet wenn 3 andere Items auf „OFF“ sind?
Items & Rule Basics kann ich schon
Lg,
Blaccky
-
- Beiträge: 210
- Registriert: 23. Mai 2017 21:41
Re: Fragen zu: .items/.rules und HM Heizkörperthermost
Code: Alles auswählen
rule xxx
when
Item item1 changed to OFF or//oder received command/update
Item item2 changed to OFF or
Item item3 changed to OFF
then
If (item1.state == OFF && item2.state == OFF && item3.state == OFF) {item4.sendCommand(OFF)}//oder postUpdate()
end
-
- Beiträge: 6
- Registriert: 24. Apr 2018 19:33
Re: Fragen zu: .items/.rules und HM Heizkörperthermost
Das veruschte ich nur mit Variablen funktionierte leider nicht aber das mit den Gruppen klingt interessant und simple da werd ich mich heute noch schlau machen darüber, vielen Dank!hr3 hat geschrieben: ↑18. Jun 2018 10:33oder für diese 3 Items eine Gruppe definieren und den Gruppen-Status abfragenCode: Alles auswählen
rule xxx when Item item1 changed to OFF or//oder received command/update Item item2 changed to OFF or Item item3 changed to OFF then If (item1.state == OFF && item2.state == OFF && item3.state == OFF) {item4.sendCommand(OFF)}//oder postUpdate() end
- udo1toni
- Beiträge: 13864
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Fragen zu: .items/.rules und HM Heizkörperthermost
Zu Punkt 1: Du meinst vermutlich, Du legst in einer Sitemap ein Switch Widget an, welches mit einem Item verknüpft ist, das eigentlich readonly ist.
Die einfache Antwort: Schalte es nicht um Die bessere Anwort: Benutze kein Switch Widget, sondern ein Text Widget. Dann wird keine Schaltfläche gezeichnet, das Icon und der Status werden trotzdem entsprechend angezeigt.
Zu Punkt 2: In einer Items Datei kannst Du nur Items anlegen. Ein Selection Item gibt es in openHAB nicht. Was Du meinst, ist ein Selection Widget in einer Sitemap. Nur dort kannst Du das festlegen.
Zu Punkt 3: Die Rule von @hr3 ist natürlich kein fertiger Code. Was meinst Du mit Variablen?
Die Frage ist auch, wie sehen die Randbedingungen nun genau aus?
Geht es darum, dass ein 4. Item geschaltet wird, sobald die drei anderen Items OFF sind, oder müssen die drei OFF sein, damit, wenn das 4. Item geschaltet wird, das auch passiert?
Was soll passieren, wenn eines der drei OFF-Items seinen Zustand ändert?
Grundsätzlich wäre die Gruppenvariante so:
items:
rule:
Man könnte aber auch sowas machen:
Das würde also das Item sofort wieder ausschalten, wenn ein Einschaltversuch erfolgt. Je nach dahinter hängender Hardware geht das so schnell, dass es keinen Unterschied macht, aber diese Variante funktioniert zuverlässig auch, wenn man z.B. per Rule, REST API oder Karaf Konsole versucht, den ON-Befehl direkt abzusetzen.
Es kommt also darauf an, was Du erreichen willst, wie die Randbedingungen sind.
Die einfache Antwort: Schalte es nicht um Die bessere Anwort: Benutze kein Switch Widget, sondern ein Text Widget. Dann wird keine Schaltfläche gezeichnet, das Icon und der Status werden trotzdem entsprechend angezeigt.
Zu Punkt 2: In einer Items Datei kannst Du nur Items anlegen. Ein Selection Item gibt es in openHAB nicht. Was Du meinst, ist ein Selection Widget in einer Sitemap. Nur dort kannst Du das festlegen.
Zu Punkt 3: Die Rule von @hr3 ist natürlich kein fertiger Code. Was meinst Du mit Variablen?
Die Frage ist auch, wie sehen die Randbedingungen nun genau aus?
Geht es darum, dass ein 4. Item geschaltet wird, sobald die drei anderen Items OFF sind, oder müssen die drei OFF sein, damit, wenn das 4. Item geschaltet wird, das auch passiert?
Was soll passieren, wenn eines der drei OFF-Items seinen Zustand ändert?
Grundsätzlich wäre die Gruppenvariante so:
items:
Code: Alles auswählen
Group:Switch:OR(ON,OFF) gMyGroup "Gruppe ist [%s]"
Switch myItem1 "Bedingung 1 [%s]" (gMyGroup)
Switch myItem2 "Bedingung 2 [%s]" (gMyGroup)
Switch myItem3 "Bedingung 3 [%s]" (gMyGroup)
Switch myItem4 "Item 4 ist [%s]"
Code: Alles auswählen
rule "gMyGroup Switch"
when
Item gMyGroup changed
then
if(gMyGroup.state == OFF)
myItem4.sendCommand(ON)
end
Code: Alles auswählen
rule "gMyGroup Switch"
when
Item myItem4 received command
then
if(gMyGroup.state != OFF && receivedCommand == ON)
myItem4.sendCommand(OFF)
end
Es kommt also darauf an, was Du erreichen willst, wie die Randbedingungen sind.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 6
- Registriert: 24. Apr 2018 19:33
Re: Fragen zu: .items/.rules und HM Heizkörperthermost
Hallo & danke für die ausführliche Antwortudo1toni hat geschrieben: ↑18. Jun 2018 13:47 Zu Punkt 1: Du meinst vermutlich, Du legst in einer Sitemap ein Switch Widget an, welches mit einem Item verknüpft ist, das eigentlich readonly ist.
Die einfache Antwort: Schalte es nicht um Die bessere Anwort: Benutze kein Switch Widget, sondern ein Text Widget. Dann wird keine Schaltfläche gezeichnet, das Icon und der Status werden trotzdem entsprechend angezeigt.
Zu Punkt 2: In einer Items Datei kannst Du nur Items anlegen. Ein Selection Item gibt es in openHAB nicht. Was Du meinst, ist ein Selection Widget in einer Sitemap. Nur dort kannst Du das festlegen.
Zu Punkt 3: Die Rule von @hr3 ist natürlich kein fertiger Code. Was meinst Du mit Variablen?
Die Frage ist auch, wie sehen die Randbedingungen nun genau aus?
Geht es darum, dass ein 4. Item geschaltet wird, sobald die drei anderen Items OFF sind, oder müssen die drei OFF sein, damit, wenn das 4. Item geschaltet wird, das auch passiert?
Was soll passieren, wenn eines der drei OFF-Items seinen Zustand ändert?
Grundsätzlich wäre die Gruppenvariante so:
items:rule:Code: Alles auswählen
Group:Switch:OR(ON,OFF) gMyGroup "Gruppe ist [%s]" Switch myItem1 "Bedingung 1 [%s]" (gMyGroup) Switch myItem2 "Bedingung 2 [%s]" (gMyGroup) Switch myItem3 "Bedingung 3 [%s]" (gMyGroup) Switch myItem4 "Item 4 ist [%s]"
Man könnte aber auch sowas machen:Code: Alles auswählen
rule "gMyGroup Switch" when Item gMyGroup changed then if(gMyGroup.state == OFF) myItem4.sendCommand(ON) end
Das würde also das Item sofort wieder ausschalten, wenn ein Einschaltversuch erfolgt. Je nach dahinter hängender Hardware geht das so schnell, dass es keinen Unterschied macht, aber diese Variante funktioniert zuverlässig auch, wenn man z.B. per Rule, REST API oder Karaf Konsole versucht, den ON-Befehl direkt abzusetzen.Code: Alles auswählen
rule "gMyGroup Switch" when Item myItem4 received command then if(gMyGroup.state != OFF && receivedCommand == ON) myItem4.sendCommand(OFF) end
Es kommt also darauf an, was Du erreichen willst, wie die Randbedingungen sind.
Zu Punkt 1:
Genau ich habe für einen Channel in meinem Network Binding ein „online oder nicht“ Item erstellt soweit so gut wenn ich nun im Habpanel ein text widget nehme funktioniert es auch soweit (richtige Map übersetzung) in der Openhab APP jedoch ist es ein Schalter den ich ein und aus schalten kann (was natürlich nicht schön ist) wenn ich dann aber meine Items datei von Switch auf String ändere bekomm ich nur ein „-„ angezeigt...
Zu Punkt 2:
Ok das ist schade da ich es ja genauso in der Openhab App schalten möchte, ich probierte es schon mit den einzelen channels zum ansteueren was soweit gut funktioniert bis auf der „Manu_mode“ denn muss ich auch im Habpanel als Button angeben damit ich eine Funktion habe.
Hab noch nicht in die Sitemap Sparte reingeschaut da ich noch am Items und Rules erstellen bin, kann ich aber eine Sitemap auch auf die App ziehen?
Zu Punkt 3:
Hab in einer Anleitung gelesen man sollte var ... machen und diese schalten und in einer extra rule testen ob alle ON sind oder nicht. Zum Vorhaben: ich prüfe per Arping ob jemand Zuhause ist (switch mit On oder Off) wenn niemand Zuhause ist sollte er den Bewegungsmelder aktivieren der uns bei einer Erkennung über z.B. Telegram bescheid gibt.
Ich entschuldige mich schonmal für meine Schreibweise aber ich bin derzeit unterwegs und über das Iphone ist es ziemlich umständlich solche Beiträge zu kommentieren
Lg
- udo1toni
- Beiträge: 13864
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Fragen zu: .items/.rules und HM Heizkörperthermost
Zu 1: Die openHAB App (iOS? Android?) sollte eigentlich auf einer *.sitemap beruhen.
Dort musst Du natürlich auch
nehmen, statt
oder gar
Zu 2: siehe 1., in der *.sitemap
sollte sowohl in HABDroid als auch in der iOS App ein Selection Widget zeichnen, wie auch in Basic UI und Classic UI (letztere nur der Vollständigkeit halber...).
Zu 3: Ja, das ist ja dann einfach... Du machst eine Gruppe wie beschrieben. OR(ON,OFF) bedeutet, sobald mindestens ein Item ON ist, geht das Gruppenitem auf ON. Anschließend musst Du die Rule durch den Bewegungsmelder triggern lassen. Dann schaust Du innerhalb der Rule nach, welchen Status die Gruppe hat. Wenn sie ON ist, machst Du nichts, wenn sie OFF ist, löst Du Alarm aus (das wäre dann ja ein 5. Item). Das entspricht also quasi der letzten Rule, nur dass Du das .sendCommand auf den Alarmausgang wirken lässt, statt auf den Trigger - und natürlich musst Du die Logik umdrehen, also statt != (ungleich) ein == verwenden, oder alternativ auf ON statt auf OFF testen.
Dabei gilt es zu beachten, dass es auch noch einen dritten Status gibt, nämlich NULL, solange noch kein postUpdate auf die Gruppe gewirkt hat, also alle Items noch nicht initialisiert wurden. Kommt auf die Situation an, welches Verhalten hier wünschenswert ist.
Dort musst Du natürlich auch
Code: Alles auswählen
Text item=myReadOnlyItem
Code: Alles auswählen
Default item=myReadOnlyItem
Code: Alles auswählen
Switch item=myReadOnlyItem
Code: Alles auswählen
Selection item=mySelectionItem mappings=[1="1",2="2",3="drei","die vier"="vier"]
Zu 3: Ja, das ist ja dann einfach... Du machst eine Gruppe wie beschrieben. OR(ON,OFF) bedeutet, sobald mindestens ein Item ON ist, geht das Gruppenitem auf ON. Anschließend musst Du die Rule durch den Bewegungsmelder triggern lassen. Dann schaust Du innerhalb der Rule nach, welchen Status die Gruppe hat. Wenn sie ON ist, machst Du nichts, wenn sie OFF ist, löst Du Alarm aus (das wäre dann ja ein 5. Item). Das entspricht also quasi der letzten Rule, nur dass Du das .sendCommand auf den Alarmausgang wirken lässt, statt auf den Trigger - und natürlich musst Du die Logik umdrehen, also statt != (ungleich) ein == verwenden, oder alternativ auf ON statt auf OFF testen.
Dabei gilt es zu beachten, dass es auch noch einen dritten Status gibt, nämlich NULL, solange noch kein postUpdate auf die Gruppe gewirkt hat, also alle Items noch nicht initialisiert wurden. Kommt auf die Situation an, welches Verhalten hier wünschenswert ist.
Code: Alles auswählen
rule "Alarm melden"
when
Item Bewegung received command ON
then
if (gAnwesenheit.state != ON) {
Alarm.sendCommand(ON)
//sendMail("blah","bliblubb") musst Du gucken, mache ich bei mir nicht
//sendNotification ("was","auch immer")
// und so weiter
}
end
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 6
- Registriert: 24. Apr 2018 19:33
Re: Fragen zu: .items/.rules und HM Heizkörperthermost
Ja IOSApp, hab aber noch nie eine Sitemap erstellt und hab trotzdem Items drinnen erstellt sich die automatisch?udo1toni hat geschrieben: ↑18. Jun 2018 16:59 Zu 1: Die openHAB App (iOS? Android?) sollte eigentlich auf einer *.sitemap beruhen.
Dort musst Du natürlich auchnehmen, stattCode: Alles auswählen
Text item=myReadOnlyItem
oder garCode: Alles auswählen
Default item=myReadOnlyItem
Zu 2: siehe 1., in der *.sitemapCode: Alles auswählen
Switch item=myReadOnlyItem
sollte sowohl in HABDroid als auch in der iOS App ein Selection Widget zeichnen, wie auch in Basic UI und Classic UI (letztere nur der Vollständigkeit halber...).Code: Alles auswählen
Selection item=mySelectionItem mappings=[1="1",2="2",3="drei","die vier"="vier"]
Zu 3: Ja, das ist ja dann einfach... Du machst eine Gruppe wie beschrieben. OR(ON,OFF) bedeutet, sobald mindestens ein Item ON ist, geht das Gruppenitem auf ON. Anschließend musst Du die Rule durch den Bewegungsmelder triggern lassen. Dann schaust Du innerhalb der Rule nach, welchen Status die Gruppe hat. Wenn sie ON ist, machst Du nichts, wenn sie OFF ist, löst Du Alarm aus (das wäre dann ja ein 5. Item). Das entspricht also quasi der letzten Rule, nur dass Du das .sendCommand auf den Alarmausgang wirken lässt, statt auf den Trigger - und natürlich musst Du die Logik umdrehen, also statt != (ungleich) ein == verwenden, oder alternativ auf ON statt auf OFF testen.
Dabei gilt es zu beachten, dass es auch noch einen dritten Status gibt, nämlich NULL, solange noch kein postUpdate auf die Gruppe gewirkt hat, also alle Items noch nicht initialisiert wurden. Kommt auf die Situation an, welches Verhalten hier wünschenswert ist.Code: Alles auswählen
rule "Alarm melden" when Item Bewegung received command ON then if (gAnwesenheit.state != ON) { Alarm.sendCommand(ON) //sendMail("blah","bliblubb") musst Du gucken, mache ich bei mir nicht //sendNotification ("was","auch immer") // und so weiter } end
Vielen Dank einmal für deine sehr ausführliche und gelungene Erklärung werde mich in den nächsten tagen mal wieder dran setzten und es testen
Lg
Blaccky
- udo1toni
- Beiträge: 13864
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Fragen zu: .items/.rules und HM Heizkörperthermost
Vermutlich schaut die iOS App dann auf die _default.sitemap, die erstellt openHAB in der Tat automatisch.
EDIT: Achso, und diese Sitemap ist rein intern, die wird also nicht als Datei angelegt...
EDIT: Achso, und diese Sitemap ist rein intern, die wird also nicht als Datei angelegt...
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 6
- Registriert: 24. Apr 2018 19:33
Re: Fragen zu: .items/.rules und HM Heizkörperthermost
Ok super vielen Dank ich werd mich bis zum Wochenende in die ganze Sitemap Geschichte einlesen und testen
Darf ich mich hier nochmal melden falls ich auf Schwierigkeiten stoße?
Lg
- udo1toni
- Beiträge: 13864
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Fragen zu: .items/.rules und HM Heizkörperthermost
Aber immer doch
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet