Benötige Hilfe unter andren beim TRÅDFRI Bewegungsmelder Aqara Wall Switch

Allgemeine Fragen zum Thema "Smart Home" und Entscheidungshilfen

Moderator: seppy

ModjoMc06
Beiträge: 91
Registriert: 3. Jul 2018 06:28

Benötige Hilfe unter andren beim TRÅDFRI Bewegungsmelder Aqara Wall Switch

Beitrag von ModjoMc06 »

Hallo, meine lieben netten openhabianer.

Nach langen bin ich wieder on. Und frohes neues :D bissel spaät aber okay.
Ich hoffe mir kann jemand helfen, und mir ein Tipp geben wie ich es besser lösen kann
Nach langen suchen hier um forum. Bin ich trotzdem nicht weiter gekommen. Es geht um Folgende Systeme

Den IKEA TRÅDFRI Bewegungsmelder.
Und den Xiaomi Aqara Wireless Remote Switch

Bei den IKEA TRÅDFRI Bewegungsmelder. Bekomme ich keine genaure angaben mit der zeitschaltung Ein und aus nicht Hin, weder mit Blocky, odermit der rule läst sich das licht per bewegung nicht einschalten.

Und so sehen meine codes aus für den IKEA TRÅDFRI Bewegungsmelder.
Item:

Code: Alles auswählen

Number HCSR501_2 "Bewegungsmelder [MAP(esp-pir.map):%s]" <motion> {channel="deconz:presencesensor:000000000000:5c0272fffed10cf0010006:presence"}
esp-pir.map anlegen->

Code: Alles auswählen

0=Still
1=Motion


Timer LightTimer.rule

Code: Alles auswählen

var Timer LightTimer 
rule "Motion Sensor Lights On"
when
Item HCSR501_2 changed from 0 to 1
 
then
 if (GF_3LivingRoom_Light.state == OFF) 
 if ( (now.getHourOfDay > 6 && now.getHourOfDay < 9) || (now.getHourOfDay > 15 && now.getHourOfDay <= 23) || 
(now.getHourOfDay >= 0 && now.getHourOfDay < 2) ) {
 
GF_3LivingRoom_Light.sendCommand(ON)
 createTimer(now.plusSeconds(160))[|
 GF_3LivingRoom_Light.sendCommand(OFF) 
]
} 
end

Und nun zum Zweiten Problem wo die suche sehr schwer war.
Ich benutzen mehrere Aqara Wall Switch Schalter.
leider kann ich diese jedoch nicht so einbinden das ich damit auch die
Sonoff mini schalten kann. hat da jemand eine idee, wie ich dies Umsetzen kann.

Sprich 1 mal klicken licht geht an. die sonoff mini haben einen teimer. und schalten sich daher
automatisch aus. :roll:

Item

Code: Alles auswählen

// Aqara Wall Switch (1 Button & without neutral line)
Switch AqaraWallSwitch <switch> { channel="mihome:ctrl_ln1:<GwID>:<ID>:ch1" }
Es wäre supper Nett wenn mir da jemand bei Helfen könnte :)

Benutzeravatar
udo1toni
Beiträge: 13948
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Benötige Hilfe unter andren beim TRÅDFRI Bewegungsmelder Aqara Wall Switch

Beitrag von udo1toni »

Frage 1: Welches System? openHAB2.x? Oder doch schon openHAB3.x?

Frage 2: Bist Du sicher, was die gelieferten Werte betrifft? Hast Du schon mal versucht, den BWM mit einem switch Channel abzubilden?

Wenn Du mit openHAB3 unterwegs bist, muss es .getHour heißen, nicht .getHourOfDay. Die Formulierung der Bedingungen ist recht umständlich, und auch, wenn ich glaube zu wissen, warum Du jeweils alle Grenzwerte mit angegeben hast, wäre eine besser lesbare Rule wahrscheinlich sinnvoller:

Wenn Du schon eine Variable für den Timer zur Verfügung stellst, solltest Du sie auch nutzen.
Ich habe den Code mal so umformatiert, wie ich ihn schreiben würde.

Code: Alles auswählen

var Timer LightTimer = null

rule "Motion Sensor Lights On"
when
    Item HCSR501_2 changed from 0 to 1
then
    if(GF_3LivingRoom_Light.state == OFF)
        if((now.getHour > 6 && now.getHour < 9) || now.getHour > 15 || now.getHour < 2) { // 07:00:00 - 08:59:59 und 16:00:00 - 01:59:59
            GF_3LivingRoom_Light.sendCommand(ON)
            LightTimer = createTimer(now.plusSeconds(160), [ |
                GF_3LivingRoom_Light.sendCommand(OFF) 
            ])
        }
end
Alternativ so:

Code: Alles auswählen

var Timer LightTimer = null

rule "Motion Sensor Lights On"
when
    Item HCSR501_2 changed from 0 to 1
then
    if(GF_3LivingRoom_Light.state == ON)                                                 // Licht bereits an
        return;
    if((now.getHour > 1 && now.getHour < 7) || ( now.getHour > 8 && now.getHour < 16))    // 02:00:00 - 06:59:59 und 9:00:00 - 15:59:59
        return;

    GF_3LivingRoom_Light.sendCommand(ON)
    LightTimer = createTimer(now.plusSeconds(160), [ |
        GF_3LivingRoom_Light.sendCommand(OFF) 
    ])
end
Hier wird der Code abgebrochen, sobald eine der Abbruchbedingungen zutrifft. Diese Form hat den Vorteil, dass man mit weniger Einrückungen auskommt. Hier kann man sogar eine geschweifte Klammer sparen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

ModjoMc06
Beiträge: 91
Registriert: 3. Jul 2018 06:28

Re: Benötige Hilfe unter andren beim TRÅDFRI Bewegungsmelder Aqara Wall Switch

Beitrag von ModjoMc06 »

Hallo udo1toni.

Ich wechsel um von OH2 auch OH3x und ja ich hab das schon mit bekommen das OH3 sehr sehr anspruchsvoll.
den BWM hatte ich auch mit einen switch Channel versehen.. Na super auf sowas muss man erst kommen, anstadt getHourOfDay auf getHour. Dann ist mir das soweit klar geworden.

aber hab ja auch ein kleinen Problem mir den Aqara wall Switch. den ich einfach mit der Sonoff schaltung
nicht hinbekommen das der wall switch bei beim buttonevent On klick den Sonoff schaltet.

Benutzeravatar
udo1toni
Beiträge: 13948
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Benötige Hilfe unter andren beim TRÅDFRI Bewegungsmelder Aqara Wall Switch

Beitrag von udo1toni »

ModjoMc06 hat geschrieben: 22. Jan 2022 12:52 Ich wechsel um von OH2 auch OH3x und ja ich hab das schon mit bekommen das OH3 sehr sehr anspruchsvoll.
Das ist der Tatsache geschuldet, dass man es für Einsteiger einfacher machen will :lol:
ModjoMc06 hat geschrieben: 22. Jan 2022 12:52 den BWM hatte ich auch mit einen switch Channel versehen.. Na super auf sowas muss man erst kommen, anstadt getHourOfDay auf getHour. Dann ist mir das soweit klar geworden.
Ja, in OH2.5.12 war noch Joda Time aktiv. Joda Time ist aber deprecated, weil Oracle inzwischen JavaTime als Klasse anbietet, welche fast funktionsgleich ist. An ein paar Stellen muss man erheblich anderen Code verwenden, an anderen Stellen haben sich die Schlüsselworte nur leicht geändert (siehe hier getHour statt getHourOfDay)
ModjoMc06 hat geschrieben: 22. Jan 2022 12:52 aber hab ja auch ein kleinen Problem mir den Aqara wall Switch. den ich einfach mit der Sonoff schaltung
nicht hinbekommen das der wall switch bei beim buttonevent On klick den Sonoff schaltet.
Zeig doch mal...
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

ModjoMc06
Beiträge: 91
Registriert: 3. Jul 2018 06:28

Re: Benötige Hilfe unter andren beim TRÅDFRI Bewegungsmelder Aqara Wall Switch

Beitrag von ModjoMc06 »

Für einsteiger einfacher machen will. ja gut okay.. klar es ist auch zum teil einfach, keine frage.
jedoch von OH2auf OH3 zumindest die Umstellung, ist dann doch nicht so einfach.. da kommt dann schonmal sowas bei rum wie das man getHourOfDay anstatt getHour :lol:

und das ist mein rule " AqaraButton2 Vom aqara Switch schalter

Code: Alles auswählen

rule " AqaraButton2" 
when
    Channel "deconz:switch:000000000000:00158d00028fda8f010012:buttonevent"  triggered
then
    val String nFBfd = GF_HallwayButtonEvent.state.toString.subString(0,1)
    if(nFBfd != "1") // kein kurzer Tastendruck
        return;

    switch(nFBfd){
        case "1": GF_Hallway_Power.sendCommand(if(GF_Hallway_Power.state==ON) OFF else ON)
)
    }
end

Benutzeravatar
udo1toni
Beiträge: 13948
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Benötige Hilfe unter andren beim TRÅDFRI Bewegungsmelder Aqara Wall Switch

Beitrag von udo1toni »

Und diese Rule hat unter OH2 mal funktioniert? Bist Du sicher, was den Channel betrifft? Ich würde ein # in der UID erwarten.

Es gibt in openHAB3 eine implizite Variable, wenn man eine Rule mit Channel ... triggered triggern lässt (bzw. deren zwei):
receivedEvent enthält den Trigger, also z.B. den String "2001"
triggeringChannel enthält die UID des Channels, der die Rule getriggert hat (man könnte ja auch mehrere Channel angeben).

Entsprechend sollte die Rule unter openHAB3 eher so aussehen:

Code: Alles auswählen

rule " AqaraButton2" 
when
    Channel "deconz:switch:000000000000:00158d00028fda8f010012:buttonevent"  triggered
then
    val String nFBfd = receivedEvent.subString(0,1)
    if(nFBfd != "1") // kein kurzer Tastendruck
        return;

    switch(nFBfd){
        case "1": GF_Hallway_Power.sendCommand(if(GF_Hallway_Power.state==ON) OFF else ON)
)
    }
end
Wie erwähnt bin ich unschlüssig, was die UID betrifft. Ich habe selbst kein Aqara, würde aber im Vergleich mit anderen Bindings eher das heir erwarten:

Code: Alles auswählen

"deconz:switch:000000000000:00158d00028fda8f010012#buttonevent"
Ach so... das if(nFBd != "1") und das switch-case "1" ist natürlich eher unsinnig... Wenn die Rule abbricht, wenn nFBd nicht den String "1" enthält, muss man anschließend nicht mehr prüfen, ob der String "1" ist... Aber vielleicht ist das ein Test gewesen?
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

ModjoMc06
Beiträge: 91
Registriert: 3. Jul 2018 06:28

Re: Benötige Hilfe unter andren beim TRÅDFRI Bewegungsmelder Aqara Wall Switch

Beitrag von ModjoMc06 »

Also im grunde war es mal ein Test Script für das außen tor zb, für den außen Summer des Tors.
Und der scrpt und code lief auf oh2. Es war auch mehr als ein kurzer taster vershene, mit 3 Modis.

damals ware es mehr mit der Ikea fernbedinung. hatte dies dann umgeändert


und dies ist mir auch unschlüssig..

Code: Alles auswählen

"deconz:switch:000000000000:00158d00028fda8f010012:buttonevent"
normal sollte es wie du ja auch geschrieben hast es so aussehen

Code: Alles auswählen

"deconz:switch:000000000000:00158d00028fda8f010012#buttonevent"
Jedoch sehen alle channel und in der UID

Und in der UID channel sieht es so aus
channel.png
neben bei versuche ich es mit eine blockly code zu implamentieren
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
udo1toni
Beiträge: 13948
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Benötige Hilfe unter andren beim TRÅDFRI Bewegungsmelder Aqara Wall Switch

Beitrag von udo1toni »

An dieser Stelle ist ja nun gar nichts zu sehen... :)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

ModjoMc06
Beiträge: 91
Registriert: 3. Jul 2018 06:28

Re: Benötige Hilfe unter andren beim TRÅDFRI Bewegungsmelder Aqara Wall Switch

Beitrag von ModjoMc06 »

Genau.. nur das der Schalter auf Schaltflächen-Trigger "buttonevent" Gesetzt ist.
und dann ist auch was ich nicht so ganz herraus gefunden hab warum. den normal ist ja der buttonevent der Trigger um es zu steuern.
sprich ein Klick. und der Sonoff schaltet.

Benutzeravatar
udo1toni
Beiträge: 13948
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Benötige Hilfe unter andren beim TRÅDFRI Bewegungsmelder Aqara Wall Switch

Beitrag von udo1toni »

Ich möchte Dir den Tipp geben, mal auf die Code Ansicht umzuschalten Ich bin mir zwar nicht sicher, dass Du dort mehr zu sehen bekommst, aber einen Versuch ist es allemal wert.

Ansonsten wäre es sinnvoll, die Textdateien mit VSCode zu bearbeiten. Das geht auch Remote. Der wichtigste Punkt dabei ist aber, dass es für VSCode ein openHAB Plugin gibt (kann man direkt aus VSCode heraus installieren, die haben dafür einen integrierten Marketplace). Dieses Plugin listet (korrekt parametriert) die vorhandenen Items und Channel des laufenden openHAB Servers. Man kann sich von dort die korrekten UIDs in die Zwischenablage kopieren lassen oder auch direkt in Rules oder andere Dateien einfügen lassen, das funktioniert sehr komfortabel.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten