RF Bridge Item (RFKey) in der Sitemap

Geflasht oder ungeflasht ...

Moderatoren: Cyrelian, udo1toni

Antworten
schaedelweh
Beiträge: 9
Registriert: 15. Jan 2020 10:33

RF Bridge Item (RFKey) in der Sitemap

Beitrag von schaedelweh »

Hallo zusammen,
für die RF Bridge habe ich mehrere Tür/Fensterkontakte.
Bild
Jeder Zustand (open/close) der Teile belegt einen Key auf der Bridge
Nun will ich in der Sitemap dies so darstellen:
Bild
Dazu benötige ich ein Item !
Das ist mein Problem. In einer rule den programmierten RFKey zu benutzen, ist nun dank der Hilfe aus dem Forum kein Problem mehr :D

Habe bereits vieles gelesen und ausprobiert :ugeek:
aus diesem viewtopic.php?f=17&t=614&sid=a9cb80c6aa ... 86cde0eb1b Fred, das mit diesem Thing

Code: Alles auswählen

Switch Flurlicht  "RfKey1 and RfKey2" <switch> (gLights)
	{ mqtt="<[NAS_broker:stat/sonoff/RESULT:state:OFF:.*RfKey2.*],
			>[NAS_broker:cmnd/sonoff/rfkey2:command:OFF:''],
			<[NAS_broker:stat/sonoff/RESULT:state:ON:.*RfKey1.*],
	        >[NAS_broker:cmnd/sonoff/rfkey1:command:ON:'']", autoupdate="false" }
Dieser https://iot.formatx.net/sonoff-bridge-openhab/ ist ja echt gut, aber ich bekomme es ncht hin.
Ein Contact Item mit zwei RFKeys aus der Bridge.
Mein Things:

Code: Alles auswählen

Bridge mqtt:broker:embedded-mqtt-broker "MQTT-online"
[
    host="localhost",
    secure=false,
    username="USER",
    passwort="PASS"

]
{ 

        Thing topic sonoffbridge "Sonoff Bridge 01" @ "Sonoff Bridge" {
            Channels: 
                
                Type string : Sonoff_Button      "Sonoff Button"       [stateTopic="tele/RFBridge01/RESULT", transformationPattern="JSONPATH:$.RfReceived.Data"]
                // ..............................................................................................................................................
                Type string : reachable     "Reachable"            [ stateTopic="tele/RFBridge01/LWT" ]
                Type string : recieveddata  "Received Data"        [ stateTopic="tele/RFBridge01/RESULT", transformationPattern="JSONPATH:$.RfReceived.Data"]
                Type string : recievedTIME  "Zeit"                 [ stateTopic="tele/RFBridge01/RESULT", transformationPattern="JSONPATH:$.Time"]
                Type string : recievedsync  "Received Sync"        [ stateTopic="tele/RFBridge01/RESULT", transformationPattern="JSONPATH:$.RfReceived.Sync"]
                Type string : recievedlow   "Received Low"         [ stateTopic="tele/RFBridge01/RESULT", transformationPattern="JSONPATH:$.RfReceived.Low"]
                Type string : recievedhigh  "Received High"        [ stateTopic="tele/RFBridge01/RESULT", transformationPattern="JSONPATH:$.RfReceived.High"]
                Type string : recievedrfkey "Received RfKey"       [ stateTopic="tele/RFBridge01/RESULT", transformationPattern="JSONPATH:$.RfReceived.RfKey"]
                Type switch : button7       "Button 7"             [ stateTopic="stat/RFBridge01/RESULT", commandTopic="cmnd/RFBridge01/RFKEY1", transformationPattern="JSONPATH:$.RfKey7" ]
                Type switch : button8       "Button 8"             [ stateTopic="stat/RFBridge01/RESULT", commandTopic="cmnd/RFBridge01/RFKEY16", transformationPattern="JSONPATH:$.RfKey8" ]
                Type number : rssi          "WiFi Signal Strength" [ stateTopic="tele/RFBridge01/STATE", transformationPattern="JSONPATH:$.Wifi.RSSI"]
                
             
                

        }

        
        
}
Dazu habe Items

Code: Alles auswählen

//RF Bridge
String RFButton "RFBridge Button"                           ["Sonoff Bridge"] {channel="mqtt:topic:embedded-mqtt-broker:sonoffbridge:Sonoff_Button"}
String RFBridge_Received_RfKey "Received RfKey: [%s]"       ["Sonoff Bridge"] { channel="mqtt:topic:embedded-mqtt-broker:sonoffbridge:recievedrfkey" }
String RFBridge_Received_ZEIT "Received Zeit: [%s]"       ["Sonoff Bridge"] { channel="mqtt:topic:embedded-mqtt-broker:sonoffbridge:recievedTIME" }
Dieses Item habe ich probiert, weil ich denke das es sowas sein wird.

Code: Alles auswählen

Contact Flurlicht  "RfKey11 and RfKey12" ["Sonoff Bridge"] 
	{ mqtt="<[mqtt:topic:embedded-mqtt-broker:sonoffbridge:stat/RFbridge01/RESULT:state:OFF:.*RfKey11.*],
			>[mqtt:topic:embedded-mqtt-broker:sonoffbridge:cmnd/RFbridge01/rfkey11:command:OFF:''],
			<[mqtt:topic:embedded-mqtt-broker:sonoffbridge:stat/RFbridge01/RESULT:state:ON:.*RfKey12.*],
	        >[mqtt:topic:embedded-mqtt-broker:sonoffbridge:cmnd/RFbridge01/rfkey12:command:ON:'']", autoupdate="false" }
aber da geht nix.
Könnt Ihr mit Helfen ??
Ich dank Euch
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

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

Re: RF Bridge Item (RFKey) in der Sitemap

Beitrag von udo1toni »

Du vermischst da ein paar Dinge.

In Rules verwendest Du normalerweise Items, diese kannst Du genauso auch in Sitemaps verwenden.
Wenn Du in Rules über eine Action direkt auf ein Binding zugreifst, hast Du potentiell kein Item, das wäre dann aber auch schon die einzige Möglichkeit.

Du möchtest explizit Fensterkontakte einbinden, zeigst aber lauter Konfigurationsteile von Lichtern. Dabei hast Du Teile der Konfiguration für das mqtt1 Binding, andere für das mqtt2 Binding.

Also erste Frage: Welche Version nutzt Du (mqtt1 oder mqtt2)? Es ist tatsächlich möglich, beide Bindings parallel zu nutzen, notwendig ist es aber nicht, und es ist auch nicht empfehlenswert, da es zu Irritationen führen kann (wie man sieht...).
Zweite Frage: Du erwähnst eine Rule. Bitte poste diese Rule.

schaedelweh
Beiträge: 9
Registriert: 15. Jan 2020 10:33

Re: RF Bridge Item (RFKey) in der Sitemap

Beitrag von schaedelweh »

Hallo,
Die "Flurlichter" (Code) hab ich aus dem Internet kopiert ! Die hab ich nicht . Hier wollte ich einfach aufzeigen, das ich bereits schon gesucht habe. :shock: Die "RFBridge 01" mit den Things und Items habe ich erfolgreich am laufen.
Hier ist die rule die ich gemacht hab.

Code: Alles auswählen

rule "RF Bridge - Tor kontakte"
    when
        Item RFBridge_Received_RfKey received update
    then
        var brfkey = RFBridge_Received_RfKey.state.toString
        var tmpTime = RFBridge_Received_ZEIT.state.toString
        switch(brfkey) {

            // A Garage       //////////////////////////////////////////7
            case "8" : {
                sendTelegram("TELEGRAMM","Garage A ist offen: "+tmpTime)

            }

            case "7" : {
                sendTelegram("TELEGRAMM","Garage A ist GESCHLOSSEN: "+tmpTime)
            }
//////////////////////////////////////////////////////////////////////////////////////

            // B Garage       ///////////////////////////////////////////
            case "10" : {
                sendTelegram("TELEGRAMM","Garage B ist offen: "+tmpTime)

            }

            case "9" : {
                
                sendTelegram("TELEGRAMM", "Garage B ist GESCHLOSSEN: "+tmpTime)
            }


        }


end
Ich nutze das MQTT2. Die Regel funzt prima. Hier wird der RfKey der empfangen wird, über einen Vergleich mit einer Zahl identifiziert. Wie kann ich denn mit diesen Informationen aus der Console der RFRidge ein Item machen, welches ich in der Sitemap verwenden kann. Das verstehe ich glaube ich nicht :oops:
15:54:35 MQT: tele/RFBridge01/RESULT = {"Time":"2020-02-02T15:54:35","RfReceived":{"Sync":14070,"Low":480,"High":1380,"Data":"94490E","RfKey":11}}
15:56:36 MQT: tele/RFBridge01/RESULT = {"Time":"2020-02-02T15:56:36","RfReceived":{"Sync":13990,"Low":480,"High":1380,"Data":"94490A","RfKey":12}}
RfKey 12 ist OPEN und RfKey 11 ist CLOSED
Vielen Dank
Vielen Dank

Darkwin101
Beiträge: 15
Registriert: 6. Mär 2019 11:19
Answers: 1

Re: RF Bridge Item (RFKey) in der Sitemap

Beitrag von Darkwin101 »

Ich würde in der PaperUI ein Generic MQTT Thing anlegen
Dort einen Channel Number oder Text mit dem MQTT State Topic
tele/RFBridge01/RESULT
und bei Incoming Value Transformation
JSONPATH:$.RfKey
eintragen.
Ein entsprechendes ITEM anlegen und mit dem Channel Verlinken so bekommst du schon einmal die Zahl ausgegeben
diese würde ich über eine MAP entsprechen umwandeln

Dazu muss in Openhab die Transformations
JsonPath Transformation
Map Transformation
installiert sein.

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

Re: RF Bridge Item (RFKey) in der Sitemap

Beitrag von udo1toni »

Also, wenn ich es richtig verstanden habe, kommt eine Nachricht beim Schließen und eine beim Öffnen? Es ist verhältnismäßig aufwändig, das in Channels und Items zu definieren. Einfacher ist es, für die Kontakte ungebundene Items zu definieren und diese über die schon vorhandene Rule zu steuern:
Items (ungebunden)

Code: Alles auswählen

Contact GarageA "Garage A [map(openclosed.map):%s]"
Contact GarageB "Garage B [map(openclosed.map):%s]"
Contact Tuer_01 "Tür 1 [map(openclosed.map):%s]"
Mapping (die MAP Transformation muss installiert sein) ./transform/openclosed.map:

Code: Alles auswählen

OPEN=offen
CLOSED=geschlossen
-=-
NULL=-
Rule:

Code: Alles auswählen

rule "RF Bridge - Tor kontakte"
when
        Item RFBridge_Received_RfKey received update
then
    var brfkey = RFBridge_Received_RfKey.state.toString
    var tmpTime = RFBridge_Received_ZEIT.state.toString
    switch(brfkey) {
        case "8" : {                                                            // A Garage auf
            sendTelegram("TELEGRAMM","Garage A ist offen: "+tmpTime)
            GarageA.postUpdate(OPEN)
        }
        case "7" : {                                                            // A Garage zu
            sendTelegram("TELEGRAMM","Garage A ist GESCHLOSSEN: "+tmpTime)
            GarageA.postUpdate(CLOSED)
        }
        case "10" : {                                                            // B Garage auf
            sendTelegram("TELEGRAMM","Garage B ist offen: "+tmpTime)
            GarageB.postUpdate(OPEN)
        }
        case "9" : {                                                            // B Garage zu
            sendTelegram("TELEGRAMM", "Garage B ist GESCHLOSSEN: "+tmpTime)
            GarageB.postUpdate(CLOSED)
        }
        case "12" : {                                                            // Tür 1 auf
            Tuer_01.postUpdate(OPEN)
        }
        case "11" : {                                                            // Tür 1 zu
            Tuer_01.postUpdate(CLOSED)
        }
    }
end

schaedelweh
Beiträge: 9
Registriert: 15. Jan 2020 10:33

Re: RF Bridge Item (RFKey) in der Sitemap

Beitrag von schaedelweh »

Guten abend,
vielen Dank. Die kreativität vom Udo hat mir geholfen. Super. Jetzt passt es.
Einen schönen abend noch.
boris

Antworten