Ich habe eine Frage zu den dummies, die in der Einführung erklärt werden. Dort richtet man einen dummy ein und wenn man webCmd definiert, kann man da (anscheinend) bereits schalten. Ich möchte nun auch einen dummy einrichten, will aber kein Icon verwenden und bin daher wie folgt vorgegangen:
defmod Viessmann_Schalter dummy
attr Viessmann_Schalter webCmd Heizung_an:Heizung_aus
Damit erscheinen auch die beiden Kommandos auf der Webseite. Weiter habe ich zwei notifys definiert
defmod Viessmann_an notify Viessmann_Schalter:Heizung_ein set Viessmann M1_1Mo_ein;;set Viessmann M1_2Di_ein;;set Viessmann M1_3Mi_ein...
und
defmod Viessmann_aus notify Viessmann_Schalter:Heizung_aus set Viessmann M1_1Mo_aus;;set Viessmann M1_2Di_aus;;set Viessmann M1_3Mi_aus...
wobei ich die Einzelbefehle vorab auch getestet habe, das klappt. Wenn ich nun im FHEMWEB auf Heizung_an oder auf Heizung_aus drücke, passiert aber gar nichts. Was habe ich denn da vergessen? In der Einleitung liest sich das so, als ob das reicht. Auch die Forumseiten zu setlist etc haben mir da einfach nicht weitergeholfen.
Wenn dein webCmd Heizung_an heißt, dein Notify aber auf Heizung_ein reagieren soll wird das nicht gehen können...
Evtl. brauchst du auch ein passendes setList...
Und Notify geht am einfachsten, wenn du parallel den Eventmonitor öffnest das webCmd auslöst, schaust welcher Event kommt und den dann markierst und mittels modify/create das Notify anlegen lässt und weiter anpasst...
Kurz, da nur Handy...
Gruß, Joachim
Danke, grossartiger Fehler. Betriebsblind.
Was genau macht setlist? Das erzeugt doch die set-Befehle, aber brauche ich die denn? Wuerde denn nicht das notify alleine genuegen?
Mal eine andere Frage ... warum machst Du 3 set Befehle und nicht einen?
set Viessmann M1_1Mo_ein Viessmann M1_2Di_ein set Viessmann M1_3Mi_ein
Wobei mir dabei einfällt, Du hast zwar ein set definiert, diesen aber nach Deinen Angaben nicht komplett, d.h. eigentlich "set device status", bei Dir sehe ich nur "set defice" ...
Zitat von: Wernieman am 12 März 2018, 08:19:24
Mal eine andere Frage ... warum machst Du 3 set Befehle und nicht einen?
set Viessmann M1_1Mo_ein Viessmann M1_2Di_ein set Viessmann M1_3Mi_ein
Oh, ich wusste nicht dass so etwas geht?!
Zitat von: Wernieman am 12 März 2018, 08:19:24
Wobei mir dabei einfällt, Du hast zwar ein set definiert, diesen aber nach Deinen Angaben nicht komplett, d.h. eigentlich "set device status", bei Dir sehe ich nur "set defice" ...
Das verstehe ich nicht genau? Fehlt da ein Attribut? Welches?
Gesendet von iPhone mit Tapatalk Pro
Ich habe das jetzt nur überfolgen aber im ersten Post fehlt mir auf:
attr Viessmann_Schalter webCmd Heizung_an:Heizung_aus
defmod Viessmann_an notify Viessmann_Schalter:Heizung_ein
Heizung_an =! Heizung_ein
Ausserdem sieht das hier Fischy aus:
Zitatset Viessmann M1_1Mo_ein;;set Viessmann M1_2Di_ein;;set Viessmann M1_3Mi_ein
Allgmein:
set Geraet on
set Lampe an
set gerat off
etc., je nach dem.
Bei dir wäre also das Gerät "Viessmann" und der Schaltbefehl ist z.B. "M1_1Mo_ein", Stimmt das so?
Ich kann mir das Konstrukt dahinter nicht recht vorstellen, bzw. nur ggf überkomplizierte Dinge
Kann aber trotzdem korrekt sein, wenn du tatsächlich Dinge definiert hast, die auf "M1_1Mo_ein" als String reagieren.
Ferner: Legst du deffines immer mit "defmod" an? Würd ich nicht machen. Wenn es schon eines mit dem Namen gibt und du hast das vergessen oder so, dann wird das ohne Fehlermeldung überschrieben. Für Neuanlange würde ich immer "define" nehmen.Tut der Funkton aber keinen Abruch.
@Zrrronggg!: defmod kommt vermutlich durch kopieren der "RawDefinition" und passt schon...
Ich habe mal einen Dummy angelegt nur mit webCmd und bei mir funktioniert das mittels Notify problemlos...
...auch ohne setList.
Durch setList hast du neben den webCmd wo du klicken kannst eben auch die Möglichkeit set-Befehle per Dropdown zu haben.
Nachzulesen auch hier, was genau mittels setList gegeben ist: https://fhem.de/commandref_DE.html#DOIF_setList__readingList
Äh war jetzt noch etwas oder funktioniert es?
Wenn es nun geht, dann bitte auf gelöst setzen, umbenennen in beispielsweise [gelöst] Ist die Erklärung in der Einführung zu dummies korrekt?
Wenn nicht, dann bitte (noch mal) mitteilen was (noch immer) nicht geht...
Gruß, Joachim
Jein. Ich habe deinen Rat befolgt und das noch einmal umgestellt und teste es gleich mal. Mein Problem hat eher mit der commandref zu tun. Dort lese ich
ZitatFHEMWEB - webCmd
Durch Doppelpunkte getrennte Auflistung von Befehlen, die für ein bestimmtes Gerät gelten sollen.
und ich frage mich, was genau der Unterschied oder die Gemeinsamkeit mit setlist ist:
ZitatDummy - setlist
Eine durch Leerzeichen getrennte Liste von Befehlen, die zurückgegeben werden "set name ?", Das FHEMWEB-Frontend kann also ein Dropdown-Menü erstellen und An / Aus-Schalter anbieten.
Machen beide nun das Gleiche? Oder ist das verschieden? Ich "sehe", dass bei webcmd ein Link erscheint, bei setlist ein button angeklickt werden kann. Ist das der Unterschied? Aber die beiden koennten sich doch in die Quere kommen, oder nicht? Mir ist da die Erlaeuterung (auch im Forum) etwas zu duerftig.
Aus diesem dummy und den zwei notify könnte man auch einen DOIF machen.
Wäre schlanker und übersichtlicher.
Mit dem Handy online, daher kurz gefasst...
Ja aber wie wird das ausgeloest? Ich brauche ja so etwas wie einen Schalter?
Zitat von: andies am 13 März 2018, 07:17:33
Ja aber wie wird das ausgeloest? Ich brauche ja so etwas wie einen Schalter?
Genauso über webCmd.
Ich bastel dir nachher den Code.
Muss jetzt aber erstmal los zum Büro.
Mit dem Handy online, daher kurz gefasst...
Zitat von: Zrrronggg! am 12 März 2018, 12:51:44
Bei dir wäre also das Gerät "Viessmann" und der Schaltbefehl ist z.B. "M1_1Mo_ein", Stimmt das so?
Ja, das stimmt wirklich. Ich habe das Modul ja selbst geschrieben und der Befehl lautet wirklich
set Viessmann <string>
wobei der <string> dann in einer konfig-Datei liegt und abgeglichen wird. In der selben Zeile, in der der <string> steht, findet sich dann der Befehl, der via telnet ausgeloest werden soll. Die Bezeichungen mit dem Heizkreisen M1 und M2 sowie den Wochentagen habe ich mir ausgedacht, weil ich das systematisch in meiner Anzeige haben wollte.
als DOIF:
defmod Viessmann_Schalter DOIF (aaa) (set Viessmann M1_1Mo_ein)(set Viessmann M1_2Di_ein)(set Viessmann M1_3Mi_ein)
DOELSEIF (bbb) (set Viessmann M1_1Mo_aus)(set Viessmann M1_2Di_aus)(set Viessmann M1_3Mi_aus)
attr Viessmann_Schalter do always
attr Viessmann_Schalter cmdState Heizung_an|Heizung_aus
attr Viessmann_Schalter webCmd Heizung_an:Heizung_aus
deine Set Befehle sind aber vom Syntax her falsch.
Die musst noch korrigieren.
Ich hab die einzelnen Befehe in einzelne Ausführungsblöcke (Klammern) gepackt. damit hast die Möglichkeit diese bei Bedarf mit dem Wait Attribut zu verzögern.
Problem gefunden: Mein Modul erlaubt keine Ausfuehrung von mehreren Befehlen hintereinander. Das muss ich in einem anderen thread (er)klaeren.