Selbstbau Funkthermometer 433Mhz

Begonnen von matlen67, 28 April 2016, 09:59:57

Vorheriges Thema - Nächstes Thema

juergs

#45
Zitatwürde ein sehr keiner Sensor entstehen, mit dem man die z.B. Luftfeuchtigkeit und Temperatur messen könnte und noch
überprüfen könnte, ob das Fenster offen oder geschlossen ist.

Mein Gedankengang ging Richtung "Verkabelung" zum Fensterkontakt und die damit verbundene notwendige Entstörung.
Die einfachere Variante ist natürlich, den FK selbst als Sensor mit oder ohne Beiwerk Temp/Feuchte-Messung zu nutzen.
Du kannst den Sensor ja mit 2 ID's senden lassen. Die erste T+H und die zweite den Kontakt (wären so auch 2 Kontakte, mit einfacher Kodierung möglich).

Die digitale-Input-Variante wäre hier störungsempfindlicher. Dennoch würde ich hier ebenfalls einen
gewissen Schutz z.B. mit einen 10..100nF-Kondensator vorsehen und auch die Versorgungspannung
(Batterien) mit ca. 100...470uF puffern. Sonst erlebt man bei Gewitter oder Störungen unangenehme Überraschungen  :)
Batterien mögen es nicht, Impuls-mäßig belastet zu werden.

rippi46

Hallo juergs,

habe den Code etwas abgeändert, damit ich 100.0 bzw 0.0 senden kann.
Da mir die 30 Sekunden für ein Fensterkontakt zu lange erschien, habe ich den Pin 2 des Arduino als Eingang benutzt.
Somit kann ich bei einer Änderung an Pin 2 einen Interrupt auslösen und den entsprechenden Wert senden.

unter void setup() habe ich  folgendes eingefügt:
pinMode(PIN_FK, INPUT);
attachInterrupt(0, readFK, CHANGE);


und die Funktion readFK definiert:
void readFK()
{
if (digitalRead(PIN_FK)==HIGH){
     LaCrosse.t=100;
     } else {
     LaCrosse.t=0;
     }
  //Serial.println(LaCrosse.t);
  LaCrosse.bSensorId = SENSOR_ID_0;
  LaCrosse.sendTemperature();
}


so funktioniert es erst einmal.
Sicher kann man das ganze auch etwas eleganter lösen, aber meine Progammierkenntnisse sind nicht berauschen. :)

Danke für den Denkanstoß.

Gruß rippi
FHEM, LMS, VDR ,Dell 9010 Ubuntu 20.04,Raspimatic, HM/HMIP, Max, Elro, Brennenstuhl u. Intertechno mit Connair.
Picoreplayer, Raspi IR-Lanadapter, Firmata(wifi), LaCrosse,
nanocul433, nanocul868, Signalduino, Connexoon,
MySensor-GW+Sensoren, RGBWW, Zigbee2mqtt,Xiaomi,Nextion,LEDMatrix,Alexa

juergs

#47
Sieht gut aus,
nur sicherstellen, wenn Temperatur und Fensterkontakte, dann evtl. die
ZitatLaCrosse.bSensorId = SENSOR_ID_0
SensorId dazu ändern ... dann senden sie unabhängig.

Du kannst mal im Forum nach DOIF suchen, dann kannst Du entsprechend im FHEM darauf reagieren
oder z.B. Status-Icons entsprechen anzeigen.

Z.B. ähnlich hier:
Suche nach "Icons" + "Status"

Noch eine Anmerkung: in der PauseZeit geht der ATtiny ja in "Winterschlaf" um auf Port-Interrupts zu reagieren, muss dieser evtl. auch wieder aufwachen können!
Das habe ich noch nicht getestet und müsste das auch erst erforschen ...
Man könnte auch öfters aufwachen, das geht aber in die Lebensdauer der Batterie....
Wobei das Senden wohl am meisten Energie verbraucht (~ 25mA). Aufwachen  und auf Interrupt warten sollte eher geringer belastend sein.

Ist aber die Frage ob ein Öffnen des Fensters wirklich sofort angezeigt werden muss, oder ob 3..5 Minuten Latenz "in favor" der Batterie ausreichend wären ...



rippi46

#48
in fhem sieht das dann so aus:
Internals:
   CODE       105
   DEF        105
   LASTInputDev cul433
   MSGCNT     592
   NAME       CUL_TX_105
   NR         745
   STATE      closed
   TYPE       CUL_TX
   corr       0
   cul433_MSGCNT 592
   cul433_RAWMSG TXA0D2500502
   cul433_RSSI -20
   cul433_TIME 2016-09-18 15:27:00
   lastH      0
   lastT      1474205220.97299
   minsecs    0
   sduino_DMSG TXA0D2500502
   sduino_MSGCNT 20
   sduino_RAWMSG MU;P0=236;P3=1023;P4=-1243;P7=-21466;D=73434343404340434343434340404340434340434340434043434343434343434340434043434343434340407343434340434043434343434040434043434043434043404343434343434343434043404343434343434040734343434;CP=3;
   sduino_TIME 2016-09-18 15:13:51
   Readings:
     2016-09-18 15:27:00   state           T: 0.0
     2016-09-18 15:27:00   temperature     0.0
Attributes:
   alias      Fensterkontakt
   devStateIcon closed:fts_window_1w@lightgreen opened:fts_window_1w_open@red
   eventMap   ^100.0:opened ^0.0:closed
   group      Temperatur
   room       Büro,CUL_TX
   stateFormat temperature


Wahrscheinlich hast du recht wenn eine gewisse Latenz von 3 bis 5 Minuten zwischen dem Fenster öffnen und dem Anzeigen in fhem liegen.
Das mit dem Interrupt und "Winterschlaf" muß ich auch erst einmal anschauen. Aber ein Anfang ist gemacht.

Gruß rippi

P.S. Momentan läuft das ganze noch auf einem Nano bis die Attiny da sind.
FHEM, LMS, VDR ,Dell 9010 Ubuntu 20.04,Raspimatic, HM/HMIP, Max, Elro, Brennenstuhl u. Intertechno mit Connair.
Picoreplayer, Raspi IR-Lanadapter, Firmata(wifi), LaCrosse,
nanocul433, nanocul868, Signalduino, Connexoon,
MySensor-GW+Sensoren, RGBWW, Zigbee2mqtt,Xiaomi,Nextion,LEDMatrix,Alexa

juergs

#49
Bin mir gerade nicht ganz sicher,
aber möglicherweise waren die "100.0" zu schnell geschossen.
Besser "99.99" ? Oder funktioniert es dennoch?
(Ohne gerade in den Code schauen zu können ...)

Könntest Du Deine Icon-Definition mit angeben? Oder reichen die obigen Attribute aus?

Grüße,
Jürgen



rippi46

#50
So wie es aussieht funktioniert es mit den 100.0 und auch die obigen Definitionen reichen aus.

Hatte nur am Anfang das Problem mit dem eventmap, dass da "." Punkte und  ":" Doppelpunkte und " " Leerzeichen drin sind.
Also T: 0.0 oder T: 100.0 für state und 0.0 und 100.0 für temperature.

Gruß rippi
FHEM, LMS, VDR ,Dell 9010 Ubuntu 20.04,Raspimatic, HM/HMIP, Max, Elro, Brennenstuhl u. Intertechno mit Connair.
Picoreplayer, Raspi IR-Lanadapter, Firmata(wifi), LaCrosse,
nanocul433, nanocul868, Signalduino, Connexoon,
MySensor-GW+Sensoren, RGBWW, Zigbee2mqtt,Xiaomi,Nextion,LEDMatrix,Alexa

juergs


juergs

#52
Sehe gerade in Deiner Signatur die Intertechno-LAN Lösung:
https://www.amazon.de/ConnAir-433-Home-Automation-Gateway/dp/B008W1G620
http://wiki.simple-solutions.de/de/products/Conn_Air
Die kannte ich noch nicht  :)

rippi46

#53
Habe den Connair zwar noch im Einsatz, aber das Projekt wurde schon vor längerer Zeit von Simple Solution eingestampft bevor die Empfangsfunktion implementiert war. Der Vorteil war, dass er günstig war und ich ihn irgendwo platzieren konnte.

Ich glaube das Projekt wurde von Brennenstuhl aufgekauft.

Gruß rippi
FHEM, LMS, VDR ,Dell 9010 Ubuntu 20.04,Raspimatic, HM/HMIP, Max, Elro, Brennenstuhl u. Intertechno mit Connair.
Picoreplayer, Raspi IR-Lanadapter, Firmata(wifi), LaCrosse,
nanocul433, nanocul868, Signalduino, Connexoon,
MySensor-GW+Sensoren, RGBWW, Zigbee2mqtt,Xiaomi,Nextion,LEDMatrix,Alexa

ArduPino

Genau das habe ich auch vor.
Ich möchte aber noch einen Neigungsschalter mit einfügen, der dann zeigt ob das Fenster gekippt ist.
Müsste man per Widerstände (Spannungsteiler) erreichen können, bis da aber noch nicht so weit.
Interrupt wäre wichtig um einen Alarm auszulösen, aber nur wenn das Fenster ganz auf ist...mal sehen ob das so machbar ist.

@rippi46
Also es muss ja eine IF...THEN abfrage in FHEM möglich sein.
Bei dir: Wenn Temperatur 100 Grad dann Fenster rot
Kannst du das mit dem Fenster mal kurz hier zeigen wie das in FHEM gemacht wird ?

juergs

#55
Ein mechanischer NeigungsSensor hat meines Wissens auch nur zwei Zustände: offen und geschlossen (Reed-Kontakt).
Ein digitaler Sensor könnte natürlich alles von 0..180/360 Grad erfassen.  :)
(Ist das nicht etwas overkill? Offen/Zu reicht doch für ein Fenster, oder?)

Beide Sensoren ließen sich "umbiegen", so dass es mit dem LaCrosse-Protokoll harmoniert.

Interrupt ist nicht zwingend erforderlich. Wir müssen noch klären, ob während der Schlafphase der Interrupt
zum Aufwachen zugelassen ist, oder nicht. Ein Polling ohne Interrupt würde meiner Meinung
bei einer Schlafphase von ca. 2 Minuten völlig ausreichen. (Alarmanlage?! Wären da 2 Minuten relevant?)

Man könnte auch wechseln, also nur dann wirklich senden, wenn sich der Status ändert,
ansonsten nur nachschauen....

Grüße, Jürgen

PS: nur Attribute für das entsprechende CUL_TX_XYZ definieren:

ZitatAttributes:
   alias      Fensterkontakt
   devStateIcon closed:fts_window_1w@lightgreen opened:fts_window_1w_open@red
   eventMap   ^100.0:opened ^0.0:closed
   group      Temperatur
   room       Büro,CUL_TX
   stateFormat temperature

rippi46

Hallo juergs,

du warst etwas schneller mit dem Antworten. :)

Danke!

War noch mit dem Zug unterwegs.

Gruß rippi
FHEM, LMS, VDR ,Dell 9010 Ubuntu 20.04,Raspimatic, HM/HMIP, Max, Elro, Brennenstuhl u. Intertechno mit Connair.
Picoreplayer, Raspi IR-Lanadapter, Firmata(wifi), LaCrosse,
nanocul433, nanocul868, Signalduino, Connexoon,
MySensor-GW+Sensoren, RGBWW, Zigbee2mqtt,Xiaomi,Nextion,LEDMatrix,Alexa

juergs

 :) Dafür bin ich gleich auf den Autobahn ....

ArduPino

Zitat von: juergs am 19 September 2016, 17:46:50
Ein mechanischer NeigungsSensor hat meines Wissens auch nur zwei Zustände: offen und geschlossen (Reed-Kontakt).
Ein digitaler Sensor könnte natürlich alles von 0..180/360 Grad erfassen.  :)
(Ist das nicht etwas overkill? Offen/Zu reicht doch für ein Fenster, oder?)

Ja das wäre bestimmt overkill, so ein einfacher mit Kugel der nur ein und aus kennt, reicht denke ich.
An einem Analog Input kann man per Widerstände (Spannungsteiler) mehrere Schalter abfragen, das ist kein Problem.
Bei dem Sketch muss man dann nur einen gewissen Bereich definieren, die Spannung der Batterie ändert sich ja, dann auch die Werte 0-1024

http://forum.arduino.cc/index.php/topic,8558.0.html

if(wert >= 440 && wert <= 450)...

dann sollte das gehen.

Hab mal so ein "Samon Say" oder wie bei uns "Senso" aus den 80ern nachgebaut mit einem Attiny85
4 LED, 4 Taster, einen Summer. Die LED als Charlieplexing, die Taster mit Spannungsteiler.

rippi46

FHEM, LMS, VDR ,Dell 9010 Ubuntu 20.04,Raspimatic, HM/HMIP, Max, Elro, Brennenstuhl u. Intertechno mit Connair.
Picoreplayer, Raspi IR-Lanadapter, Firmata(wifi), LaCrosse,
nanocul433, nanocul868, Signalduino, Connexoon,
MySensor-GW+Sensoren, RGBWW, Zigbee2mqtt,Xiaomi,Nextion,LEDMatrix,Alexa