Hallo Leute,
ich versuche seit Stunden verzweifelt einen Arduino mit www.homecontrol4.me Sketch drauf über Fhem zum laufen zu bringen.
der Arduino läuft an sich perfekt.
nun habe ich folgendes in die Config eingetragen:
define WZ_Licht notify on:off "wget -q --user=admin --password=admin 'http://192.168.0.91/rawCmd?schalte&16'"
attr WZ_Licht room testraum
attr WZ_Licht webCmd on:off
leider bekomme ich nur folgende Fehlermeldung:
No set implemented for WZ_Licht
da ich wenig Ahnung vom Programmieren habe komme ich nicht weiter.
Hat wer eine Ahnung?
Hallo,
versuch mal
define n_WZ_Licht notify WZ_Licht:(on|off) ...
Das Notify darf nicht gleich heissen wie das WZ_Licht (so es dann bereits gibt) und das Regexp besteht aus <Device:Befehl>.
In diesem Fall wird ein notify mit Namen n_WZ_Licht angelegt das auf das Device WZ_Licht reagiert wenn dieses on oder off sendet.
Ob der Rest des notify so passt kann ich dir nicht sagen.
Grüße
Edith:
Zitatattr WZ_Licht webCmd on:off
Grad gesehen. Ein notify kann als attribut kein webCmd.
Du wirst dir wohl erst ein Device WZ_Licht erstellen müssen und diesem das attr webCmd geben und dann im notify auf dieses Device reagieren.
Sonst müsste sich das notify ja selbst aufrufen ;D
Bahnhof :)
hmm da hört es eben wieder auf bei mir. Device erstellen?
Hallo,
ein notify reagiert auf etwas.
Das kann ein Lichtschalter sein - eine Temperatur oder Luftfeuchte oder Regenmenge oder Windgeschwindigkeit oder oder ...
Du musst dem notify nur sagen worauf es reagieren soll.
Du kannst dem notify aber kein attr webCmd geben.
Das kansst du nur bei einem Device machen.
Wenn du also deinen code per notify abschicken willst an den Arduino musst du dem Notify sagen worauf es reagieren soll um den Rest abzuarbeiten.
du kannst dir nun also einen dummy erstellen
Define WZ_Licht dummy
und diesem das attr webCmd geben
attr WZ_Licht webCmd on:off
und nun das notify erstellen.
Sobald du nun bei deinem Dummy auf on oder off klickst wird das notify aufgerufen (sollte es zumindest - es sei den ich hab mal wieder einen Fehler gemacht) und entweder das wget abgeschickt werden oder zumindest eine Fehlermeldung im Logfile auftauchen.
Grüße
P.S.: Ich trau mich schon fast nichtmehr auf das Einsteiger.pdf und die commandref zu verweisen.
hab jetzt mal ein dummy erstellt. ich hab auch die PDF gelesen nur nicht kapiert :-) ich bin in Sachen Verständnis nicht dumm nur ich blick nicht durch das ist mein Problem. sobald ich die hintergründe verstehe ist es für mich leichter ..
define WZ_Licht dummy
define n_WZ_Licht notify on:off "wget -q --user=admin --password=admin 'http://192.168.0.91/rawCmd?schalte&16'"
attr WZ_Licht room testraum
attr WZ_Licht webCmd on:off
aber jetzt denk ich hab ich das Problem das ich ja dem attr ja noch den link geben muss oder?
Danke schon mal für deine sehr gute hilfe :-*
Hallo,
Zitatdefine n_WZ_Licht notify on:off
Das notify bräuchtest du nur richtig kopieren und den Rest anhängen.
Zitatdefine n_WZ_Licht notify WZ_Licht:(on|off) ...
Grüße
Super der button ist schon mal da.
nur reagiert meine Steuerung nicht. Im logfile ist aber nichts zu finden. >:(
Hallo,
Zitatnur reagiert meine Steuerung nicht.
Da wir nicht wissen (können) wie du was genau eingetragen hast wäre bei solchen Aussagen ein kurzer Post deines codes evtl. hilfreicher ;)
Grüße
ups sorry. ::)
##############################
# Wohnzimmer Licht #
##############################
define WZ_Licht dummy
attr WZ_Licht room testraum
attr WZ_Licht webCmd on:off
define n_WZ_Licht notify WZ_Licht:(on|off) "wget -qO --user=admin --password=admin 'http://192.168.0.91/rawCmd?schalte&16'"
attr n_WZ_Licht room testraum
Hallo,
also das notify leicht abgewandelt funktioniert einwandfrei bei mir:
define n_Test notify Test:(An|Aus) {
Log(3,"$NAME $EVENT");
}
mit einem Dummy namens Test und webCmd An:Aus
liefert mir nach Klick auf An und Aus beim Dummy im Log:
Zitat2013.12.29 14:34:15 3: Test An
2013.12.29 14:34:33 3: Test Aus
Nun kann es ja nur noch an deinem wget-Aufruf liegen das nichts passiert.
Grüße
ich glaub da liegt der Hund begraben... irgendwas stimmt mit dem User und Passwort nicht.
so über CMD habe ich es nun hin bekommen zu schalten und zwar über:
wget -q "http://admin:admin@192.168.0.91/rawCmd?schalte&16"
wenn ich das aber in die cfg eingebe passiert nichts. kann man das irgenwie umsetzten?
mein versuch:
##############################
# Wohnzimmer Licht #
##############################
define WZ_Licht dummy
attr WZ_Licht room testraum
attr WZ_Licht webCmd on:off
define n_WZ_Licht notify WZ_Licht:(on|off) wget -q "http://admin:admin@192.168.0.91/rawCmd?schalte&16"
attr n_WZ_Licht room Testraum
Funktioniert nicht. :(
So müsste es gehen ;)
define n_WZ_Licht notify WZ_Licht:(on|off) "wget -q 'http://admin:admin@192.168.0.91/rawCmd?schalte&16'"
Danke für die schnelle Antwort.
Leider ohne Erfolg. :-\
Warum nutzt du auf dem Arduino nicht Firmata?
Kommt mir deutlich cleaner implementiert vor...
Hi,
Zitat von: noice am 29 Dezember 2013, 16:39:54
... Leider ohne Erfolg. :-\
Und wie sieht es mit Fehlermeldungen in der Fhem.log aus??
Du müsstest schon mal (im übertragenen Sinn) links und rechts schauen. Fhem schreibt dir... du musst es nur lesen ;)
Danke und Gruß
Thomas
ich bin bereits mit nem bekannten an einer lösung im 99_myutils
warum ich Homcontrol4me sketch benutze? weil ich eine frau hab die doch gern noch die app benutzen möchte :)
so der erste versuch geht schon mal:
define Licht_wz dummy
attr Licht_wz room testraum
attr Licht_wz webCmd toggle
define n_Licht_wz notify Licht_wz:toggle {myLichtToggleNr('16')}
attr n_Licht_wz room testraum
und das muss ins 99_myutils.pm
sub myLichtToggleNr {
my $par=$_[0];
my $sCmd="wget.exe ".'"'."http://admin:admin".'@'."192.168.0.91/rawCmd?schalte&".$par.'"';
log 1, "Versuch ".$sCmd;
system ($sCmd);
}
jetzt fehlt mir nur noch die Auswertung von dem momentanen Status da man ja auch extern schalten kann
Auslesen des Status geht wie folgt:
sub myLichtStatusNr {
my $par=$_[0];
my $sCmd="wget.exe ".'"'."http://admin:admin".'@'."192.168.0.91/rawCmd?status&".$par.'" -O Status.txt';
log 1, "Versuch ".$sCmd;
system ($sCmd);
}
da ist nur noch die frage wie binde ich das ein?!? muss ich dazu die Status.txt auslesen?
So.
nun hab ich doch den Arduino Sketch umgekrempelt um nicht nur togglen zu können sondern auch direkt ein und auszuschalten.
Bei Interesse wird ich gern den Sketch sowie die Zeilen im My_Utils zur Verfügung stellen.
ein Problem bleibt weiterhin noch. :-\
ich kann mit:
sub myLichtStatusNr {
my $par=$_[0];
my $sCmd="wget.exe ".'"'."http://admin:admin".'@'."192.168.0.91/rawCmd?status&".$par.'" -O Status.txt';
log 1, "Versuch ".$sCmd;
system ($sCmd);
}
den Status asulesen.
Bei Ein kommt: <schalter>:1
Bei aus kommt: <schalter>:0
wie kann ich jetzt in Fhem den Status anzeigen lassen?