NEWS
Fensterkontakt/ -überwachung
-
@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").
-
@mierscheid sagte: Soll der übergeordnete Punkt nicht besser ein Gerät sein?
Optimal ist eine Struktur 0_userdata.0.Gerät.Kanal.Datenpunkt, wobei das eigentliche Gerät in der Struktur auch der Kanal sein kann. Beispiel:
-
Tja, keine Ahnung...
-
@mierscheid sagte: Tja, keine Ahnung...
Nicht unter "Variablen", sondern unter "Trigger".
Object ID rein ziehen und Wert selektieren.
Alternativ kann auch die Variable Wert in value (exakt so geschrieben) umbenannt werden, denn das ist eine vordefinierte lokale Variable, die ebenfalls den Wert des Trigger-Datenpunktes enthält.
-
@paul53 Oha! Dort! Verstanden. Danke.
Sollte ich in diesem Script die Benachrichtigung über ein offenes Fenster integrieren, oder macht man das besser in einem eigenen Script?EDIT:
Funktioniert super, neue Fenster einpflegen ist auch nicht so kompliziert (wenn man es man verstanden hat) und Blockly macht auch einigermaßen Bock.