Seite 1 von 2

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

Verfasst: 21. Jan 2022 10:11
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 :)

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

Verfasst: 21. Jan 2022 20:27
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.

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

Verfasst: 22. Jan 2022 12:52
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.

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

Verfasst: 22. Jan 2022 14:40
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...

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

Verfasst: 22. Jan 2022 16:40
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

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

Verfasst: 22. Jan 2022 18:43
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?

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

Verfasst: 23. Jan 2022 06:17
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

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

Verfasst: 23. Jan 2022 16:09
von udo1toni
An dieser Stelle ist ja nun gar nichts zu sehen... :)

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

Verfasst: 24. Jan 2022 15:52
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.

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

Verfasst: 25. Jan 2022 01:58
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.