FHEMduino

Begonnen von mdorenka, 06 Dezember 2013, 15:34:39

Vorheriges Thema - Nächstes Thema

StefanW

So, es funktioniert jetzt wie es soll. :-)

Der Code hatte mich etwas verwirrt, da zusätzlich von dem Kanal die Rede war.

Dank an euch.

digital.arts

Hallo,

der WS0002 "Code" besteht aus dem Code, der sich bei jedem Batteriewechsel ändert, und dem gewählten Kanal (Schieberegler auf der Rückseite)
Hinweis: Die Kanalnummern 1,2,3 werden im FHEM als 0,1,2 erkannt...
Im define :
300 bedeutet, dass bei sich nicht ändernden Werten (t:, h:, b:) nur alle 300 sec ein reading erzeugt wird
1 bedeutet, dass bei einem geänderten Wert innerhalb der 300 sec doch ein reading erzeugt wird
Mit dem Testknopf auf der Rückseite kann man jederzeit ein "Senden" anstossen, wird auch im FHEM im reading "sendMode" erkannt (  "automatic" bzw "manual")

VG
Karl
FHEM auf RPi; CUL868 für FHT; NanoCUL433 für IT und Revolt; Fhemduino für IT und Temp/Hum; RFXTRX433e für IT/FA20RF/Funkgong/HomeEasy; NanoFirmataEth für 1wire Temp

StefanW

Danke noch mal für die ausführliche Erklärung.

Ist es eigentlich möglich, mehr als 3 WS0002 Sensoren zu verwenden?
Oder kommt es da zu Überschneidungen wegen dem gleichen Kanal?

digital.arts

Hallo,
@StefanW
Du kannst xx Sensoren gleichzeitig verwenden, solange sie unterschiedliche Codes haben.
Im schlechtesten Falle einfach nochmals die Batterien raus und rein, dann hat der Sensor einen anderen Code.
Das muss man natürlich dann auch berücksichtigen, wenn mal bei einem Sensor diese schwach werden... Er muss dann in der config neu angelegt werden.
Ich hab z.B. 7 Sensoren ws00002 im Einsatz.

Vg
Karl
FHEM auf RPi; CUL868 für FHT; NanoCUL433 für IT und Revolt; Fhemduino für IT und Temp/Hum; RFXTRX433e für IT/FA20RF/Funkgong/HomeEasy; NanoFirmataEth für 1wire Temp

CaptainHook

Hi,  da hab ich bisher andere Erfahrungen gemacht...  Bei mir fallen regelmäßig 2Sensoren aus. Eun Druck auf die tx-taste behebt das Problem wieder einige Tage bis dann wieder 2 ausfallen...
gruß Stephan

Gesendet von meinem Galaxy Tab 4 LTE mit Tapatalk

Lenovo M53 ThinkCentre 10DC | Docker | SolarEdge SE10K + SE5000H + Energy Bank 10KWh | EspEasy | Tasmota | Hue | Alexa | uvm.

kroonen

Hi,

I installed fhemduino, and with oregon sensors it works ok.

Now I had a fa20rf smoke dector. When i press the test button it creates te config:

define FA20RF_9a8513 FHEMduino_FA20RF 9a8513
attr FA20RF_9a8513 IODev FHEMduino
attr FA20RF_9a8513 room FHEMduino_FA20RF
define FileLog_FA20RF_9a8513 FileLog ./log/FA20RF_9a8513-%Y.log FA20RF_9a8513
attr FileLog_FA20RF_9a8513 logtype text
attr FileLog_FA20RF_9a8513 room FHEMduino_FA20RF


but when I look in the web interface and press the FHEMduino_FA20RF link it them crashed

I get the error

Undefined subroutine &main::SetExtensions called at ./FHEM/14_FHEMduino_FA20RF.pm line 173.

Any idea what goes wrong?

Wzut

Zitat von: kroonen am 21 November 2014, 20:36:31
Any idea what goes wrong?

missing file SetExtensions.pm in your FHEM folder ?
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

kroonen

exists

root@pi:/opt/fhem/FHEM# ls Set* -al
-rw-r--r-- 1 fhem dialout 4573 Nov 18 22:09 SetExtensions.pm


kroonen

Hi I found something:

in the 14_FHEMduino_FA20RF.pm there is after Package main no

use SetExtensions

I added this and now it works.

Just a question about working of fa20rf, does it communicate after sometime with them to say it is still there, or is it only communicate to the by test and alarm?

regards Richard

kroonen

Hi

I get only this , no state or last update, or last seen, is this ok?

fhem> l FA20RF_9a8513
Internals:
   BTN        100110101000010100010011
   CODE       9a8513
   DEF        9a8513
   IODev      FHEMduino
   NAME       FA20RF_9a8513
   NR         38
   STATE      ???
   TYPE       FHEMduino_FA20RF
   XMIT       100110101000010100010011
   XMIToff    100110101000010100010011
   XMITon     100110101000010100010011
   Fa20rf_9a8513:
Attributes:
   IODev      FHEMduino
   room       FHEMduino_FA20RF

regards Richard

Wzut

Thats  OK. The FA20RF and FA21RF only send their own device ID in test or alarm mode.
No status, no keep-alive, no battery low :(
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

ecofreezy

Zitat von: Sidey am 14 November 2014, 20:08:48
Hi,

Der Decoder für TX70DTH wurde in der Tat implementiert.
Wenns nicht funktioniert hilft nur debuggen.

Grüße Sidey

Hallo Zusammen,
ich habe nun den TX70DTH zum laufen gebracht. Eine originale Wetterstation war dafür natürlich nicht nötig. Beim debuggen ist mir aufgefallen, dass der Code noch einen Fehler enthält. Speziell in der void decoders2500(unsigned int duration) Funktion.

Für die korrekte Funktion muss folgende Bedingung erfüllt sein:
if ((duration > LOW_STARTBIT_TIME && duration < HIGH_STARTBIT_TIME) && duration > timings2500[0] - STARTBIT_OFFSET && duration < timings2500[0] + STARTBIT_OFFSET)

LOW_STARTBIT_TIME und HIGH_STARTBIT_TIME wurden jedoch wie folgt belegt:
#define LOW_STARTBIT_TIME  2500
#define HIGH_STARTBIT_TIME 2500


Durch die gleichen Werte kann man die oben genannte Bedingung nicht erfüllen. Ich vermute hier einen Copy-Fehler.
Die Werte müssen so aussehen:
#define LOW_STARTBIT_TIME  2500
#define HIGH_STARTBIT_TIME 5000


Einen weiteren Copy-Fehler vermute ich im else if Teil der Funktion.
else if (duration > STARTBIT_TIME)

STARTBIT_TIME ist jedoch eine Variable aus der void decoders(unsigned int duration) Funktion. Bei der decoders2500 Funktion sollte es vermutlich besser so heißen:
else if (duration > LOW_STARTBIT_TIME)

Mit der Änderung wurde der TX70DTH anstandslos erkannt und per autocreate in FHEM angelegt. Dort gab es dann aber noch einen Schönheitsfehler. Die Temperatur wurde nicht ganz korrekt decodiert. Aus 21,9°C wurden 219°C. Damit war dann auch die Umrechnung in Taupunkt und absolute Feuchtigkeit nicht korrekt.
Also noch eine Änderung im FHEM-Modul 14_FHEMduino_Env.pm. Bei
elsif ($model eq "05") {      # TX70DTH (Aldi)
    $SensorTyp = "TX70DTH";
    $channel = bin2dec(substr($bitsequence,9,3));
    $bin = substr($bitsequence,0,8);
    $deviceCode = sprintf('%X', oct("0b$bin"));
    $bat = int(substr($bitsequence,8,1)) eq "1" ? "ok" : "critical";
    $trend = "";
    $sendMode = "";
    $temp = bin2dec(substr($bitsequence,16,8));
    if (substr($bitsequence,14,1) eq "1") {
      $temp = $temp - 1024;
    }
    $hum = bin2dec(substr($bitsequence,29,7));
    $val = "T: $temp H: $hum B: $bat";
  }

einfach eine Zeile ergänzen:
elsif ($model eq "05") {      # TX70DTH (Aldi)
    $SensorTyp = "TX70DTH";
    $channel = bin2dec(substr($bitsequence,9,3));
    $bin = substr($bitsequence,0,8);
    $deviceCode = sprintf('%X', oct("0b$bin"));
    $bat = int(substr($bitsequence,8,1)) eq "1" ? "ok" : "critical";
    $trend = "";
    $sendMode = "";
    $temp = bin2dec(substr($bitsequence,16,8));
    if (substr($bitsequence,14,1) eq "1") {
      $temp = $temp - 1024;
    }
#  Komma bei Temperatur um eine Stelle nach links
    $temp = $temp / 10;

    $hum = bin2dec(substr($bitsequence,29,7));
    $val = "T: $temp H: $hum B: $bat";
  }


Und schon war ich glücklich :)

JoWiemann

Hallo ecofreezy,

danke. Habs ins Git in den Trunk übernommen.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

ecofreezy

Danke.
Hab ich auch mal was zu FHEMduino beigetragen :D
Super Projekt!

Gruß Eric

Franz Tenbrock

Hallo,
war ja ganz am Anfang auch dabei, dann aber wegen mangelnder Reichweite ausgestiegen, aber immer mal wieder geschaut...
Dieser Thread hat nun über 1000 Seiten, da blickt keienr mehr durch, und lesen kann man auch nicht alles.
Es ist genial was daraus geworden ist.
Aber im Wiki steht nicht gerade viel. Das ist aber die Stelle wo man nachschauen sollte wenn man was neues machen will.
Hab als Anfänger auch einen Wiki geschrieben war gar nicht so schwer, anmelden und fertig, Wäre doch schade wenn das Potential nicht genutzt würde.
Das Ding liegt bei mir in der Schublade und ich würde es ja gerne reaktivieren, die Frage ist was ich damit dann alles steuern kann, sicher mehr als im Wiki steht.
Einfach mal so als Anregung.
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi