[Modul] Sonoff

:confused::confused::confused:
Erster Post, dritter Absatz:

Dieses Modul habe ich ein wenig umgeschrieben, ich stehe aber schon mit ihm in Kontakt, wir wollen aus unseren beiden MQTT Clients einen bauen.

Ich lese das anderes, die wollen nur, das man nicht mehr 2 Module dafür braucht…

Ich will ja was ganz anderes :wink:

IPS soll endlich das MQTT Protokoll nativ unterstützen und auch dafür gescheite Instanzen bereitstellen !

Ja drapple,
im Moment geht es hier um Sonoff, als MQTT im eigenen Netz.
Kai (Sohneman) baut das erst nur mal für Sonoff, die wir her haben.
Und das geht schon mal in Grundzügen, ohne Cloud und externe Server.

Hi,

glaube ich habe ein :banghead:

Vielleicht ne blöde Frage, aber wie schalte ich die mit deinem Modul angelegten Sonoff Geräte denn per Script ein und aus?

per Webfront gehts aber nicht per Script…(setvaluebool…)

Danke

Wie bei allen Modulen musst Du eine Methode aufrufen. Es fehlen in der Klasse aber noch expliziert Methoden zum Ein / Ausschalten, die müssten noch ergänzt werden.

Du kannst aber so lange die Methode


SonoffSwitch_setStatus($Value);

aufrufen.

Hi,

super, funktioniert…Danke (mal wieder ;-))

Gruß

Ja, da ist noch ein Fehler drin, muss Kai noch richtig ziehen.
Kommen wird :


und weitere Sensoren.
Einige Module sind bestellt, und kommen die Woche.
Die IPS-Module gehen auch mit anderen ESP-Modulen, wenn die Sonoff-Tasmota Firmware drauf ist.

Das nächste Projekt ist eine Poolüberwachung mit den Dingern, aber ohne 230V.:smiley:

Wenn der Symcon Dienst neu gestartet wird, erscheint folgende Fehlermeldung:

IPS-Err-PHP  2017-08-13 07:04:02.571  Error: Call to a member function receive() on null
   Error in Script /var/lib/symcon/modules/IPS-KS-MQTT/MQTT_client/module.php on Line 247

Der Client Socket wird kontinuierlich geöffnet und geschlossen

13.08.2017 07:20:55 | Client Socket | Öffne Socket…
13.08.2017 07:20:55 | Client Socket | Einstellungen gespeichert
13.08.2017 07:20:55 | Client Socket | Schließe Socket…
13.08.2017 07:20:55 | Client Socket | Fehler beim Lesen: Ungültiger Dateideskriptor

Sonoff-SV ist gestern hier angekommen,
und rennt mit der Sonoff-Tasmota Firmware.
Jetzt muss ich mir mal Gedanken machen, ich denke es braucht nur ein Sonoff Modul, welches alles macht. Muss das mal mit Kai absprechen.
Bei uns läuft das ohne Problme mit IPS 4.3 auf einem Pi2, wobei der Mosquitto Server auf einem 2ten Pi läuft.

Mqtt direkt in IPS hätte was, aber das IPS Team hat schom genug um die Ohren.

Hallo Tobias,

wie gerade per PN geschrieben, das Objekt mqtt scheint zu der Zeit noch nicht vorhanden zu sein, ich schaue mir das mal an. Wenn ich dort etwas einbaue, könnten wir zusammen bei der per TeamViewer mal testen, ich kann den Fehler hier nicht nachvollziehen.

Grüße,
Kai

Hallo zusammen,

ich habe den Fehler der bei Tobias aufgetreten ist beheben können.
Zur Zeit ist die Änderung im testing Branch vom MQTT Client.

Grüße,
Kai

Hallo zusammen,

es gibt Neuigkeiten. :slight_smile:
Ich habe aus den ganzen Modulen eins gemacht.

Es wird lediglich in der Sonoff Instanz noch das Topic angegeben, den Rest erledigt die Instanz. Das Modul erkennt also, welche Variablen am Sonoff Gerät vorhanden sind und legt diese in IPS an.
Das ganze findet ihr im testing Branch.

Es wird nur noch das Modul IPS-Sonoff benötigt, IPS-SonoffPow und IPS-SonoffSwitch sind überflüssig, ich habe diese nur mitgezogen, damit bei euch nicht direkt alles entfernt wird, wenn ihr den Branch wechselt.

Den Debug Modus habe ich für mich eingebaut, damit das Debug Fenster nicht mit Nachrichten überflutet wird, somit könnt ihr dann gezielt auswählen was ihr im Debugfenster sehen wollt.

Das Sonoff Gerät neustarten wird benötigt, wenn der Switch vom Sonoff nicht automatisch angezeigt wird, dann muss das Sonoff Gerät ein Mal neugestartet werden, denn erst dann schickt das Modul die Power Variablen, oder ihr geht auf das Webinterface des Sonoff Gerätes und schaltet die Switche, dann werden sie ebenfalls gesendet.

Viel Spaß beim testen.

Grüße,
Kai

Hallo Kai,

ich habe heute erfolgreich Deine Testing-Version eingespielt.
Ich hatte einen neuen, meinen ersten, S20 bekommen, und wollte den einbinden, was mit dem Modul auf Anhieb geklappt hat.

Außerdem habe ich auf ein NodeMCU die Tasmota Firmware eingespielt. Dort sind drei DS18B20 angeschlossen. Auch dies funktioniert einwandfrei. Ich habe dort unter Configuration/Module bei Modul „Sonor Basic“ ausgewählt. Dann wird aber immer eine Power Variable angelegt. Gibt es eine andere Möglichkeit, so dass diese Variable nicht angelegt wird?

Vielen Dank für das Modul.

Gruß
Christian

Hallo Christian,

im Webinterface von dem Sonoff, wirst du sicherlich auch sehen, dass dieses Gerät einen „Switch“ hat. Deswegen wird dieser angelegt.
Du könntest die Variable einfach in IPS ausbblenden?

Grüße,
Kai

Hallo Kai,

danke , ja stimmt. Der Switch wird angezeigt. Ist ja aber eigentlich auch egal.

Jetzt noch eine Frage:

Beim Befehl: Sonoff_setPower(InstanceID: Integer, Ident: Variant, Value: Variant): Variant
Wird beim „Ident“ was erwartet?

Ich habe den Namen der Variablen sowie die ID und den Topic probiert, bekomme aber eine Fehlermeldung.

Warning:  Objekt mit Ident 38285 wurde nicht gefunden 

wenn ich die ID verwende. Beim Variablennamen kommt die Meldung mit dem Namen

Gruß
Christian

Ident bedeutet normalerweise genau das… Der Ident von der Variable.
Anzusehen unter Instanz Reiter Statusvariablen.
Oder Objekt bearbeiten auf der Variable.
Michael

Vielen Dank, da habe ich wieder etwas gelernt.

Danke jetzt geht es.

Hallo zusammen,

heute gab es ein Update, nun werden auch die Variablen angelegt, die noch unbekannt sind.
Also alles was keine Temperatur, Power oder Luftfeuchte Variable ist.
Verfügbar im testing Branch.

Grüße,
Kai

Somit werden auch BMP180,BME280 Var’s angelegt, usw.
Rennt hier gut.

Eines ist mir noch aufgefallen, bei „Befehle testen“ fehlen Parameter.
<?
Sonoff_setPower(28025, , );

Bei mir kommt diese Fehlermeldung in dem Meldungsfenster


FlowHandler | Kann Daten nicht zur Instanz #11149 weiterleiten: 
Fatal error: Call to a member function receive() on null in D:\IP-Symcon\modules\IPS-KS-MQTT\MQTT_client\module.php on line 247
Abort Processing during Fatal-Error: Call to a member function receive() on null
   Error in Script D:\IP-Symcon\modules\IPS-KS-MQTT\MQTT_client\module.php on Line 247

Wann genau bekommst du den Fehler?
Welchen Branch hast du installiert?

Grüße,
Kai