NEWS
Fensterkontakt/ -überwachung
-
@sms Hi, grundsätzlich sind meine Aktoren alle in der CCU3 angelernt und verbunden mit dem entsprechenden Adapter in ioBroker (da findest Du eineiges mit Google).
Fensterkontakt: HmIP-SWDO-IPGruß Axel
-
Habe zum Einen Homematic Drehgriffsensoren und für die Zweitflügel sowie viele Türen Golden Security GS - WDS07 433MHz Sensoren, die ich per RFLink einlese. Billig und gut. Batterien halten sehr lange.
Die Überwachung erfolgt teils in der CCU (Altlast) oder im ioBroker.
Anzeige der offenen Fenster auf einem Tablet (einfache Textanzeige mit Farbumschalg des Hintergrunds) getrieben von ioBroker vis. Zusätzlich werden beim Öffnen des Garderobenschranks die offenen Fenster vorgelesen.
Ansonsten in ioBroker mit einfachen Watchdogs, die nach einigen Minuten Öffnen eine Nachricht verschicken. -
@klassisch Ich habe auch die GS Fensterkontakte an einer 433 MHz Bridge (Tasmota/Sonoff). Ich lese die gerade über MQTT aus, aber so richtig geil ist das nicht, denn mir ist nicht ganz klar, wie ich die Kontakte als einzelne Devices darstellen kann. So vermutlich gar nicht, oder? Ausserdem haut mir MQTT gerne statt einem E (geschlossen) oder A (offen) gleich viermal eine Meldung in die History.
Ich verfolge da einen komplett falschen Ansatz, oder? Kannst Du mich mal in die richtige Richtung schubsen?
-
@mierscheid Zur Tasmota-Sonoff-Bridge kann ich leider nichts sagen, die kenne ich nicht. Ich arbeite mit RFLink und dem RFLink-Adapter
In jenem Post habe ich geschrieben, wie die Datenpunkte bei mir aussehen.- rflink.0.channels.EV1527_27.SWITCH_06 -> low Batt
- rflink.0.channels.EV1527_27.SWITCH_07 -> tamper switch
- rflink.0.channels.EV1527_27.SWITCH_0a -> open
- rflink.0.channels.EV1527_27.SWITCH_0e -> closed
Es kommt immer nur ein kurzer true Impulse. Nie ein false.
Mit einem einfachen JScript triggere ich auf die true-Impulse ab und latche sie zwischen.
D.h. ich lege unter 0_oserdata.0. .... einen entsprechen Datenpunkt an, z.B.0_userdata.0.Lock.letterboxClosed
den ich auf true setze, wenn ein Closed-Impuls reinkommt und auf false setze, wenn ein open signal reinkommt
-
@klassisch Ah, ja sieht bei mir ähnlich aus:
{"Time":"2021-03-30T19:46:05","RfReceived":{"Sync":14100,"Low":500,"High":1360,"Data":"4A360E","RfKey":"None"}}
{"Time":"2021-03-30T19:49:43","RfReceived":{"Sync":14060,"Low":500,"High":1360,"Data":"4B8D0A","RfKey":"None"}}
Also... irgendwie.Aber wir unterscheidest Du die Fensterkontakte?
Bei mir sind das als Beispiel:
4A36
4B8DIch hatte gehofft, es gäbe einen Adapter, der Fensterkontakte, bzw. 433 MHz Sensoren auflistet.
Aber okay, ich muss mich da offensichtlich einlesen, denn ich verstehe genau gar nichts von dem, was Du schreibst. Als ob ich einem Raketenwissenschaftler zuhören würde. Krass.
-
@mierscheid
Das geht per Sonoff Adapter und einem Blockly.
-
@mierscheid Wie gesagt, die Tasmota / Sonoff bridge kenne ich nicht.
Bei RFLink geht das so:
Beim Anlernen des Sensors legt der Adapter Datenpunkt an. Z.B. .- rflink.0.channels.EV1527_27.SWITCH_0a
zerlegen wir das mal: - rflink.0.channels.
- rflink ist das Verzeichins der RFLink Adapter
- 0 ist die erste Instanz. Man kann mehrere Instanzen haben. Ich komme mit einem zurecht
- EV1527 Das ist der Chip und das damit verbundene Protokoll. So heißen alle dies Golden Security TFKs mit erstem Namen
- _27 Das ist der 27. Sensor dieses Protokolltyps, den ich angelernt habe
- SWITCH_0a Das ist der Name des Schalters in diesem TFK. In dem Fall wenn man öffnet. Experimentell ermittelt / Im Internet gefunden. Wilkür des Protokollentwicklers.
Weil sich das kein Mensch merken kann, gibt es in der Objektansicht noch eine Namensspalte, wo man eigene Namen vergeben kann
Dann sieht das so aus:
Und siehe da, das war ein TFK, den ich zweckentfremdet habe und als Takngeber in einen Luftentfeuchter eingebaut habe. - rflink.0.channels.EV1527_27.SWITCH_0a
-
@ralla66 @klassisch
Danke Leute, super, dass Ihr helft. Ich schaue mir das morgen an. War zuviel Smartes Zuhause für die letzten Tage. Muss mal Feierabend machen.Schade, dass unser Briefkasten zu weit weg steht.
-
Machen wir noch ein Beispiel:
Esszimmer 2. FensterflügelDer Adapter hat hier die Kanäle angefügt, die er schon mal gesehen hat. Meist sind das open, closed und der tamper kontakt. Ich habe noch low Batt manuell hinzugefügt, damit es komplett ist. Braucht man aber nicht unbedingt.
Weil da aber immer nur kurz bei open oder Closed das ture aufblitzt, muß man erst noch was machen.
Ich lege mir dazu im Obejektbereich 0_userdata manuell einen Kanal Lock und darunter einen Datenpunkt Esszimmer2ndWindowClosed an
Jetzt muß man die beiden Datenpunkte noch verknüpfen. Das kann man über ein JScript oder ein blockly machen.
Man muß also was programmieren.
Wenn man das nicht möchte, dann muß man tiefer in die Tasche greifen, Homematic oder Zigbee oder ZWave einsetzen.
Mit dem 433MHz Billigzeug muß man halt immer noch etwas Hand anlegen.Bei Homematic steht gleich alles im Klartext da, Beispiel
-
@mierscheid sagte in Fensterkontakt/ -überwachung:
Schade, dass unser Briefkasten zu weit weg steht.
433MHz kann eine gute Reichweite haben.
Briefkastenabfrage mit solch einem Sensor
Funktioniert gut. -
@ralla66 Der Sonoff-Adapter legt aber keine neuen Devices an, richtig? Der gibt immer nur den Rf-Status aus? (Neben dem ganzen anderen Kram über den Zustand der Bridge an sich). Ich müsste mir also in Blockly quasi Variablen für jeden TFK anlegen und sprechend benennen?
@klassisch Der RF-Adapter legt also jeweils ein neues Device an, wenn er Daten empfängt? Bekäme man nicht ggf. fremde Geräte eingepflegt?
Okay, zum Verständnis: Ein Kanal bedeutet ein TFK-Device, korrekt?
Und so ein Kanal kann verschiedene Datenpunkte erzeugen? Also offen, geschlossen und LowBat als Beispiele?Welche Hardware wäre denn empfehlenswert? Der RF-Adapter erwartet ja ein Gerät direkt am Rechner, richtig? Wie kann ich bei Empfangsproblemen weitere Empfänger hinzufügen? Z.B. am Raspi ioBroker-Slave im Keller?
Basteln ist kein Problem. Bei 34 TFK summiert sich das dann sonst so weit, dass es finanziell einfach nicht mehr darstellbar ist und die Kosten in keinem Verhältnis mehr zum Nutzen stehen. Ich habe IIRC 2,45 pro TFK aus China bezahlt. War aber noch direkt vor Corona.
-
@mierscheid
nein Device wird nicht angelegt. Einfach einen Datenpunkt erstellen ist ja kein Akt. Aber Eh überflüssig da du sofort den 3 Byte Code ( RfReceived_Data ) in einem Blockly bearbeiten kannst. Fenster auf / zu / Bat leer diesen Zustand mußt du eh weiter verarbeiten. Wenn ganz billig eben auf jeder Etage eine Bridge ins WLan bringen, dazu ein paar Sku fertig ist die Laube.
https://forum.iobroker.net/topic/22066/balkontüre-geöffnet-nach-30min-heizung-aus/10?_=1617203319162 -
@klassisch Der RF-Adapter legt also jeweils ein neues Device an, wenn er Daten empfängt?
so halb und halb. Ein neues Device legt er nur an, wenn man den Anlernmodus aktiviert. Wenn der wieder geschlossen ist, legt er kein neues Device mehr an.
Wenn aber von einem bereits bekannten Device ein neues Signal kommt, dann wird das automatisch in den Objekten nachgepflegt, falls es noch nicht schon vorhanden war.Bekäme man nicht ggf. fremde Geräte eingepflegt?
Wenn Nachbars Discounterthermometer während der Anlernpfase sendet, ist es mit drin. Habe einige solche parasitären Einträge....
Okay, zum Verständnis: Ein Kanal bedeutet ein TFK-Device, korrekt?
Ja, also ein Kanal im Objektbereich. Sozusagen die "Verzeichnisse" werden im Objektbereich Kanal genannt. Wenn Du manuell was anlegst wirst Du es sehen. Einfach unter 0_userdate mal spielen. Kann man alles wieder löschen.
Und so ein Kanal kann verschiedene Datenpunkte erzeugen? Also offen, geschlossen und LowBat als Beispiele?
ja, genau erkannt. wobei bei den billigen 433MHz Dingern im Objektbereicht praktisch immer "true" steht. Weil das Ding nie "false" sendet. Wenn sich der Kontakt schließt wird kurz ein true an das Objekt closed gesendet. Wenn der Kontakt öffnet, kurz ein true an open und wenn der tamper-Komtakt (der bei den neueren meist fehlt, elektrisch aber noch nutzbar ist) öffnet gibt es dort auch ein true. Wenn der schließt gibt es nichts (glaube ich).
Welche Hardware wäre denn empfehlenswert? Der RF-Adapter erwartet ja ein Gerät direkt am Rechner, richtig? Wie kann ich bei Empfangsproblemen weitere Empfänger hinzufügen? Z.B. am Raspi ioBroker-Slave im Keller?
Ich weiß von 2 Lösungen Eine Lösung mit ESP8266 und einem Empfänger RXB6, die z.B. der user @opensourcenomad verwendet.
@Ralla66 scheint ebenfalls eine ESP Lösung einzuseten, die ich nicht kenne.
Ich nutze die Lösung RFLink http://www.rflink.nl/blog2/
Die nutzt neben dem RXB6 Empfänger einen Arduino Mega, der normalerweise direkt an einen ioBroker Rechner angeschlossen wird. Ich habe dem RXB6 eine saubere Spannungsversorgung und eine sehr ordentliche Groundplane Antenne (Aurel GP433, 35 EUR bei Voelkner Q07742 ) spendiert und komme vom Keller durchs ganze Haus bis unters Dach.
Und ja, die eigentliche Lösung ist über USB. Ich mag das aus verschiedenen Gründen nicht und habe deshalb einen USR-TSR232-E2 drangebastelt, damit ich das übers Ethernet einlesen kann. Kann man natürlich auch über einen ioBroker Slave machen, aber ich scheue derzeit noch einen Slave. Ich habe meine Basteleien hier im Forum beschrieben. Sicher nicht jedermanns Sache, läuft bei mir aber top.Basteln ist kein Problem. Bei 34 TFK summiert sich das dann sonst so weit, dass es finanziell einfach nicht mehr darstellbar ist und die Kosten in keinem Verhältnis mehr zum Nutzen stehen. Ich habe IIRC 2,45 pro TFK aus China bezahlt. War aber noch direkt vor Corona.
Ja, früher war das billiger. Corona hat die Transportkosten erhöht, dann Trump, der dafür gesorgt hat, daß der Postverein China nicht mehr wie ein Entwicklungsland subventioniert - und der Euro wird seines dazu tun.
-
denkbar wäre auch ein zigbee Lösung. Es gibt von sonoff SNZB-04 zu 6 bis 8 EUR. TFK mit Zigbee.
Dann halt noch den Einstieg in Zigbee. Am besten mit einem Stick hier aus dem Markplatz. Ca. 50 EUR und Umbau auf LAN ähnlich möglich wie bei RFLInk; habe auch einen Beitrag dazu verfaßt.
Oder mit der Sonoff Zigbee Bridge, die aber wohl beschränkter ist. Kenne ich selbst nicht, es gibt aber einige Beiträge hierzu im Forum Beispiel. -
@ralla66 Sorry, ich raffe das gerade genau null. Kannst Du bitte ein Beispiel-Blockly anhängen? Auch ohne Erklärung. Ich denke, ich verstehe aktuell Bilder besser als Worte. Keine Ahnung warum das so ist.
@klassisch Naja, ich habe ja schon alle TFK vor über einem Jahr gekauft. Die Haussanierung dauerte aber viel länger als geplant... Habe mir neulich versehentlich diesen CUirgendwas Zigbee-Stick gekauft, wollte eigentlich Z-Wave für den Türöffner haben. Frag net. Ja, ist klar, der kann IIRC nur 20 Devices, aber zurückschicken werde ich den auch nicht. Haben ist besser als brauchen.
Danke Euch beiden, für die Ausführungen, denen ich aktuell aber ohne Hintergrundwissen nicht so recht folgen kann. Das ist KEINE Aufforderung, dass Ihr hier eine Anleitung posten sollt. Ich will mir das schon noch selbst erarbeiten. Wie gesagt, am besten mit einem Beispielscript.
-
@mierscheid Beispielscript für die RFLink Lösung
const RFLInkTestroomWindowClosedId = 'rflink.0.channels.EV1527_25.SWITCH_0e'; // pick the name from objects view, chapter RFLink const RFLInkTestroomWindowOpenId = 'rflink.0.channels.EV1527_25.SWITCH_0a'; // pick the name from objects view, chapter RFLink const TestroomWindowClosedId = '0_userdata.0.Lock.TestroomWindowClosed'; // your choice createState(TestroomWindowClosedId, false , false, { // generates data point if not already existing name: 'TestroomWindowClosed', type: 'boolean', role: 'value' }); on({id: RFLInkTestroomWindowClosedId, change:'any'}, function(dp) { // triggers if data point is changed { setState(TestroomWindowClosedId , true) // sets the state in the objects view } }); on({id: RFLInkTestroomWindowOpenId, change:'any'}, function(dp) { // triggers if data point is changed { setState(TestroomWindowClosedId , false) // sets the state in the objects view } }); läßt sich natürlich noch beliebig erweitern, z.B. Mail, wenn Fenster länger als x Miunten offen steht.
-
@klassisch Danke schön! Mit dem Beispielscript meinte ich eigentlich den @Ralla66, sorry.
Du hast ja einzelne Datenpunkte für jeden einzelnen TFK. Das macht der Sonoff-Adapter ja nicht. Da kommt nur sowas bei raus:sonoff.0.433-Bridge.RESULT.RfReceived.Data
Ralla meinte ja, dass er die einzelnen Kontakte durch ein Blockly-Script erzeugen würde.
Habe es selber probiert, bin aber kläglich debei gescheitert. -
@mierscheid sagte: die einzelnen Kontakte durch ein Blockly-Script erzeugen würde. Habe es selber probiert, bin aber kläglich debei gescheitert.
Wenn die ersten 4 Zeichen die Geräte-Kennung und die letzten 2 Zeichen den Kontakt- bzw. Batteriestatus liefern, versuche es mal so:
-
@paul53 Hervorragend! So bin ich sogar gezwungen das nachzubauen und so besser zu verstehen! DANKE!
EDIT:
@paul53 Die Objekt ID, die aktualisiert werden soll, da muss ich bei 0_userdata_0 einen eigenen Datenpunkt für den Zustand eines Fensterkontaktes erstellen? Bspw.: "Kind 2 Fenster links – Batterie leer" und "Kind 2 Fenster links – offen"?
Man kann keine Devices erstellen, die dann Unterpunkte (Attribute?) bekommen können, richtig? Jedenfalls habe ich nichts in Blockly gefunden.EDIT2:
Ah! Nein! Ich setze einen Tochter-Datenpunkt unter einen Datenpunkt? "Batterie leer" unter "Kind 2 Fenster links"? Macht man das so korrekt? Soll der übergeordnete Punkt nicht besser ein Gerät sein?EDIT 3:
Das funktioniert so nicht. Blöde Frage: Die Variable "Wert": wie bekommt die den Inhalt des Objektes?Edit 4:
Habe mir so geholfen. Jetzt funktioniert es. Ist das aber so wirklich richtig?
-
@mierscheid sagte: Die Variable "Wert": wie bekommt die den Inhalt des Objektes?
Das ist der Wert des Trigger-Datenpunktes (unter "Trigger").