Beiträge von stepfl

    Es gehen aber auf die beiden TX (GPIO 3) oder RX (GPIO 1). Dann solltest du serial log deaktivieren (seriallog off).

    DS18B20 (rot auf 3,3V / gelb auf RX / schw. auf GND) + "seriallog off ... + GPIO1 auf "DS18x20 (4)" gestellt

    Mit Voltmeter 3.3Vzwischen rot -schwarz und gelb-schwarz gemessen ( die Versorgung scheint zu stimmen=


    ABER es wird nichts angezeigt - und auch in der Konsole taucht keinerlei Meldung zu einem Sensor auf

    muss ich sonst noch etwas (per Konsole) einschalten/einstellen

    ok - aber dann erscheint GPIO14 nicht mehr in der Auswahlliste .... WAS ist dann dieses ominöse "E-LOG" (siehe Foto)?

    Wenn "E-LOG" GPIO14 wäre - könnte ich dann doch die "Basic(0)"-Version nehmen?


    Sorry, wenn ich so frage - ich will nicht einfach herumprobieren und mir ggf das Gerät zerschießen...
    dafür habe ich leider zu wenig Ahnung von der Materie!


    Jedenfalls VIELEN Dank für alles...



    PS: Da ich bei G*** kein einziges Bild von der S20-Platine gefunden habe, die meiner ähnlich sieht .... ist DAS schon wieder eine neue Version?

    Hallo zusammen,

    ich habe einen S20 besorgt und wollte nun die Verbindung für einen DS19B20 herstellen.


    NUR die Platine sieht anders aus als alle Fotos bei G**** - Bilder


    UND - es gibt einen zusätzlichen Kontaktpunkt mit der Bezeichnung E-LOG.

    Kann mir jemand sagen ob/wie dieser Kontaktpunkt den GPIO zuzuordnen ist und ob ich diesen ggf für einen DS18B20 verwenden kann?


    Vielen Dank

    NoitaercX:

    Hast du es schon mal mit /change oder /CHANGE probiert

    bzw. einem komplett anderen Wort.

    Vielleicht hängt es deshalb irgendwo (Topic case-sensitive).


    Nein - ich habe GENAU den Text übernommen, den ich im "Terminal" als Rückmeldung erhalten hatte, an ein komplett anderes Wort hatte ich bisher nocht gedacht - DENN: im Terminal funktioniert es ja :=> scheint ein Problem in der Anwendung von paho zu sein ...

    werde es demnächst mal testen... DANKE!


    JoergZ:

    "offTopic" wie legst du " stepfl" an? - hat sich erledigt bzw. funktioniert "von alleine per "@" + NAME ...:thumbup:


    Das da verhält sich MQTT (oder paho-mqtt) case insensitiv. hatte ich auch schon entdeckt (z.B. mit "Power" vs. "POWER" :-) )

    und habe deshalb mir alle Übertragungen per Terminal und Topic "#" angesehen.

    Eigentlich gehe ich davon aus, dass die DORT auftauchenden Einträge auch case-Richtig sein sollten ... hmmmm...


    Als Entwicklungswerkzeug verwende "Geany", da es sowohl unter Ubuntu als auch Raspian verfügbar ist.

    Die verschiedenen, teilweise auskommentierten Topics hatte ich nur angelegt um die verschiedenen Versionen nicht jedes Mal eingeben zu müssen. "Change" hat in keiner der Versionen funktioniert bzw. wurde in paho empfangen.

    Manchmal steckt der Teufel im Detail ... deshalb ja die Tests mit den verschiedenen Topics und parallel dazu per mosquitto_sub

    was bedeutet das "-m" in deinem -t stat/TH10/Test1 -m "Versuch" .... DAS habe ich bisher noch nie verwendet.


    Das Thema "Leerzeichen /Tab" in Python kenne ich - ich arbeite nur noch mit je 4 Leerzeichen pro EinrückungsEbene...

    Den Versuch mit "mosquitto_pub"+ "Fantasie-Messages" +"Fantasie-Topics" ist eine gute Idee ... will ich demnächst versuchen.....


    Diese Meldungen müssten - bei aktiviertem stat/TH10/# angezeigt werden. Das ist in MQTT konzeptionell so vorgesehen. ... dachte ich auch - ist aber leider (derzeit) bei "Change" nicht so .......


    Im Moment hole ich mir die Daten per "stat/TH10/RESULT" und bastle sie im PythonCode zusammen ...... funktioniert in der aktuellen Version auch (Puhhh)


    Jetzt möchte ich das DS18B20-Programm mit dem MQTT-Programm (laufen derzeit noch in getrennten Routinen) "verheiraten" damit ich alle Messwert in EINEM Logfile ablegen kann. Bin gespannt wie das dann klappt ... Danach will ich versuchen, die DS18B20-Daten in das MQTT-Format zu wandeln/übertragen und per MQTT zu versenden ...

    DAS gebe ich euch dann zur kritischen Begutachtung/Optimierung "frei" ... bin gespannt, was ich dann zu meinem "gebastel" anmerken werdet :-)


    Damit hätte ich dann alle derzeit evtl. notwendigen/denkbaren/interessanten Übertragungskanäle zur Verfügung und kann dann mein eigentliches ErfassungThema angehen ....


    SO - jetzt ist erst mal Sonntag und ich "darf" mich anderen Dingen zuwenden ....

    Häf a Naiß Däij + sänks a lot ....Stefan

    .... jetzt habe ich erst einmal einen anderen Weg gewählt:

    - da die MQTT-Daten aus "stat/TH10/RESULT" auch alles enthalten - nur viel mehr Datentransfer bedeuten - nehme ich diese Daten und "bastle" mir daraus den Datensatz, den ich eigentlich per "stat/TH10/Change" vom TH10 bekommen würde ...

    es funktioniert, auch wenn es ein Wenig "durch die Brust ins Auge" ist ....


    Warum das "stat/TH10/Change" NICHT funktioniert ist mir ein Rätsel ... DAS hebe ich mir für die Stunden mit Langeweile auf :-)


    Und wieder: vielen Dank für dein/Euer darüberschauen meiner "Bastellösungen" und der Hilfestellungen und Verbessungsvorschläge...

    Schönes Wochenende und Gruß

    Stefan

    ... und laut Sonoff-Console sendet der TH10 auch ganz brav seine MQT-Pakete:

    17:07:33 RUL: VAR4#STATE!=0 performs "backlog var4 0; publish stat/TH10/Change {“Time“:2019-11-15T17:07:33,“Hyg.MIN“:84.800,“Hyg.MAX“:85,"Hygr(%)":85.1,"Power":1,“Temp.“:16.4}"

    17:07:33 MQT: stat/TH10/RESULT = {"Var4":"0"}

    17:07:33 RUL: VAR4#STATE=0 performs ""

    17:07:33 MQT: stat/TH10/Change = {“Time“:2019-11-15T17:07:33,“Hyg.MIN“:84.800,“Hyg.MAX“:85,"Hygr(%)":85.1,"Power":1,“Temp.“:16.4}

    ......

    Danke JoergZ, DAS hatte ich schon probiert:


    Code
    def on_connect(client, userdata, flags, rc):
    print("Connected with result code " + str(rc))
    client.subscribe("stat/TH10/Change")
    client.subscribe("stat/TH10/POWER")
    # client.subscribe("stat/TH10/RESULT")
    # client.subscribe("stat/TH10/#")



    Alle anderen Topic funktionieren in der PyRoutine - nur "stat/TH10/Change" nicht .... übrigens auch mit "stat/TH10/#" nicht ...

    aber im parallel laufenden Terminal kommt alles wie gewünscht an:

    Code
    stefan@SteLT05:~$ mosquitto_sub -u Stefan -P TEST -h 192.168.178.46 -v -t stat/TH10/Change
    stat/TH10/Change {“Time“:2019-11-15T16:53:12,“Hyg.MIN“:84.800,“Hyg.MAX“:85,"Hygr(%)":85.2,"Power":0,“Temp.“:16.2}
    ....

    Ich habe auch probiert, ob da MQTT-Protokoll in 2 gleichzeitig laufenden Terminals funktioniert - nicht dass der eine Abruf den Anderen blockiert - ...

    ABER - es wunderbar (parallel) geschrieben .


    Ich bin langsam mit meinem Latein am Ende

    Einzige Idee ist, dass es noch weitere Parameter (irgendwo) einzustellen gibt, von denen ich bisher keine Ahnung habe ...


    Gruß

    StePfl

    ... und es geht weiter ... mit den Fragen!


    was ist passiert:

    Sonoff TH10 funktioniert, auf dem Pi habe ich moaquitto und mosquitto_client und in Python paho installiert.

    die Abrufe im Terminal mit mosquitto_sub -u Stefan -P TEST -h 192.168.178.46 -v -t stat/TH10/Change funktioniert wie gewünscht


    aber ich bekomme pahon in Python nicht richtig zu laufen.

    Das "subscriber.py" habe ich von hier ... und mit meinen Zugangsdaten wie oben eingerichtet:


    Aufrufe mit "stat/TH10/#" oder "stat/TH10/POWER" funktionieren wunderbar -

    leider aber nicht der Aufruf "stat/TH10/Change" ... obwohl er im parallel laufenden Terminal die richtigen Ergebnisse ausgibt.

    Woran kann das liegen? gibt es noch (einen) Parameter, den ich vergessen/übersehen habe?


    LG StePfl

    Hallo Jörg, hallo an die vielen, anderen Helfer,

    und wieder ein VIELEN DANK!!!


    den von dir geschilderten Ablauf habe ich auch im Rules-Wiki (ganz unten) gefunden. Nachdem ich die "publish"-Zeile noch einmal eingetippt hatte ging es plötzlich .... leider kann ich nicht sagen, woran es lag.


    Die "Tele-AD3201#Humidity..." liefert kein Trigger .... ich vermute, da ich vorher "teleperiod 0" eingegeben hatte. Leider hab ich keine detaillierte Beschreibung dazu gefunden .....


    Da das Ganze auch ohne MQTT-Verbindung seine Funktion erfüllen sol - MQTT soll (momentan) nur der Datenprotokollierung dienen - ist es eine Mischung aus Rules und MQTT geworden.


    inzwischen schaut meine Lösung so aus:

    (ich schreib meine Rules in Excel - da habe ich eine bessere Übersicht - die Einzelzeilen werden anschließend zusammengeführt,

    wenn gewünscht kann ich auch die "echte" Ruels-Zeilen noch einstellen)

    Code
    rule1
    on Power1#Boot do backlog mem1 %mem1%; var4 0 endon
    on mem1#state do backlog backlog var1 %mem1%; sub1 %mem2%; var4 0 endon
    on mem2#state do mem1 %mem1% endon
    on AM2301#Humidity do var2 %value% endon
    on AM2301#temperature do var3 %value% endon
    on var2#state>%mem1% do power 1 endon
    on var2#state<%var1% do power 0 endon
    on Power1#State!=%var5% do backlog var5 %value%; var4 0 endon


    Code
    rule2
    on var4#state=0 do backlog
    Var4 1;
    publish stat/TH10/Change {“Time“:%timestamp%,“Hyg.MIN“:%var1%,
    “Hyg.MAX“:%mem1%,"Hygr(%)":%var2%,"Power":%var5%,“Temp.“:%var3%} endon

    dabei bedeuten:

    mem1: Schaltgrenzwert AN / mem2: Schalthystherese /var1: Schaltgrenzwert AUS / VAR2: Messwert Humidity / var3: Messwert Temperatur / Var4: Hilfsvariable um "publish" auszulösen / Var5: Schaltzustand d.Relais.


    Über die Lösung Var4 / Var5 bin ich nicht sonderlich glücklich - aber ich habe keine Lösung dafür gefunden den Status "Power" zu nutzen.

    Die MQTT-Protollierung läuft auf dem Laptop und auch auf dem Rasp ( im Terminal mit "mosquitto_sub -u Stefan -P TEST -h 192.168.178.46 -v -t stat/TH10/Change > ~/TH10-Protokoll.txt")


    Die PythonVersion wird bald folgen.


    Mein GANZ GROßER DANK gehört euch hier - ohne euch ich es nicht geschafft!


    Gruß Stefan

    im "Rules-Wiki" (ganz unten) habe ich den Befehl "publish" gefunden, der das gewünschte ausführen soll(te) ...


    .... irgendwie klappt es bei mir aber nicht so, wie ich es gerne hätte - und wie ich die Beschreibung dort vertehe: sinngemäß etw. angepasst sieht mein Befehl SO aus:

    on var3#state do Publish stat/TH10/Change {"From":"%Var3%","To":"%Var4%"} endon


    der Befehl löst auch eine Übertragung an "stat/TH10/Change" aus!

    ich hatte erwartet, dass der ÜbertragungsString so aussieht:

    stat/TH10/Change {From:[Wert von Var3] to [Wert von Var4]}

    ... es kommt aber stat/TH10/Change {"From":"%Var3%","To":"%Var4%"} ...WAS läuft hier falsch?


    Eigentlich würde ich gerne den Status des Relais und den Wert des Sensorwerts (steht in Var3)bekomme,

    etwa so: Pwr: 0, Hygr.: 0,78% sehen... Leider schaffe ich es nicht, den ÜbertragungsString passend zu gestalten


    Das mit dem ZeitTrigger für die MQTT-Übertragung denke ich mit dem Vergleich von "timestamp" und einem passenden Eintrag z.B. in Var5 zu lösen ...


    und noch eine Frage: Gibt es die Möglichkeit den Status einer Rule abzufragen - so etwas wie "on rule1#state = 0 do ..."?


    Danke und Gruß, Stefan

    Hallo Jörg,


    WOW - das nenne ich Hilfe und Begleitung .... ich ziehe den Hut!


    Deine Tips sind super - haben geholfen ....

    die (fast) Zeitsynchrone Datenerfassung klappt! - und es taucht die nächste Frage auf: - dieses Mal nicht zu MQTT sondern zum Sonoff:


    Kann ich dem TH10 auch beibringen, dass er nur dann "sendet", wenn sich der Messwert um "xx" geändert hat?
    Natürlich kann ich das auch selbst zusammenbasteln - ich will aber gerade mein Augenmerk auf das DatenLoggin im Pi legen...

    Wäre also dankbar - damit ich mein Werkzeugkasten auch mit diesem Instrument füllen kann


    Hintergrund:
    Ich betreue (privat) eine Immobilie und die haben Probleme mit der Warmwasserversorgung. Um herauszufinden, wie sich das System zeitlich verhält will ich einen Pi mit diversen Sonoffs und DS18B20 installieren und die Messdaten protokollieren.

    - so will ich z.B. so herausfinden, ob die WW-Zirkulation richtig funktioniert oder ob einzelne (z.B. TempRegelVentile) nicht sauber funktionieren.

    - oder - ob die Zirk.Stränge alle die selber RücklaufTemp haben

    - oder ... oder .... oder .... (viele Stellen, die ein genaueres Hinsehen begrüßen würden)


    ALSO - VIELEN, vielen Dank

    Gruß, Stefan


    PS: ich genieße euren angenehm positiven, hilfreichen, wertschätzenden KommunikationsStil hier ... wirklich ein tolles Forum!!!


    ps2:

    für den Pi muß ich noch herausfinden, wie ich den Messzeitpunkt von "vielen" DS18B20 auf einen (fast) gleichen Zeitpunkt setzen kann.

    Im Moment scheint der Pi immer erst die Wandlung der ersten DS18B20 abzuwarten und erst danach den nächsten anzusprechen: Wandlungszeit warten- Messwert .... Also - bei 10 Sensoren ist der Messwert des letzten Sensors 10xWandlungszeit (:= ca. 10 sec.) nach der des ersten ....

    Ziel/Wunsch wäre:

    der Pi gibt ein StartSignal (an alle Sensoren) zum Wandeln - und holt sich dann die Werte (nach einander ) bei den Sensoren ab...

    Ob DAS mit den DS18B20 geht muß ich erst noch herausfinden .... also KEINE Echtzeitmessung aber eine mit synchronen Messzeiten

    ( ... das wird dann die nächste Ausbaustufe .... )