Frage zu genericDeviceType:switch,outlet,light,blind,speaker,thermostat

Begonnen von tklein, 22 Februar 2017, 14:35:57

Vorheriges Thema - Nächstes Thema

Master_Nick

#15
Also in bash script hätte ich es mit einer variable gelöst die hoch oder runter gezählt wird.

Perl könnte so gehen:

my $counter = 15;
chomp $counter ;

for($counter){

  my $counter = ($counter - 1);
}

Dummerweise versau ich noch oft die Syntax.. *Edit hab es mal eben in ein notify gepackt gemeckert hat die neue Kontrolle von FHEM 5.8 nicht :-D


*EDIT geht wohl noch besser:


for ($i = 1; $i != 15; $i++) {{system(" /home/pi/433Utils/RPi_utils/codesend 15883556 &")}}

Müsstest du mal testen...
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

tklein

mmhhmmm:

Kuechenlampe:up for ( my $i=1; $i !=15; $i++) {{system(" /home/pi/433Utils/RPi_utils/codesend 15883556 &")}}
--> da wird gemeckert: (ohne my wird auch gemeckert)

Log:

2017.02.24 11:06:17 3: up_Kuechenlampe return value: Unknown command for, try help.
Unknown command $i, try help.
Unknown command $i++), try help.

Kuechenlampe:(up|down).* {my $dim=ReadingsVal($NAME,"dim",0); $dim+=$EVENT eq "up"?10:-10; $dim=$dim>100?100:$dim<0?0:$dim; fhem "setreading $NAME dim $dim"}
--> hier wird nicht gemeckert
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

DeeSPe

Zitat von: tklein am 24 Februar 2017, 11:50:05
mmhhmmm:

Kuechenlampe:up for ( my $i=1; $i !=15; $i++) {{system(" /home/pi/433Utils/RPi_utils/codesend 15883556 &")}}
--> da wird gemeckert: (ohne my wird auch gemeckert)

Log:

2017.02.24 11:06:17 3: up_Kuechenlampe return value: Unknown command for, try help.
Unknown command $i, try help.
Unknown command $i++), try help.

Kuechenlampe:(up|down).* {my $dim=ReadingsVal($NAME,"dim",0); $dim+=$EVENT eq "up"?10:-10; $dim=$dim>100?100:$dim<0?0:$dim; fhem "setreading $NAME dim $dim"}
--> hier wird nicht gemeckert

Wenn dann so:
define up_Kuechenlampe notify Kuechenlampe:up {for (my $i=1;;$i!=15;;$i++) {`/home/pi/433Utils/RPi_utils/codesend 15883556 &`}}

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

tklein

geil!! Das klappt.

Als was muss ich die Lampe jetzt deklarieren, damit ich die mit meinem StandardSkill schalten kann? Derzeit wird sie von Alexa werder mit Typ (genericDeviceType) lamp noch switch gefunden.
24 andere werden aber gefunden.


define Kuechenlampe dummy
attr Kuechenlampe alexaName Stripetest
attr Kuechenlampe alexaRoom Kueche
attr Kuechenlampe genericDeviceType lamp
attr Kuechenlampe group Stripes
attr Kuechenlampe room Küche,Stripes,Homekit,alexa
attr Kuechenlampe setList toggle up down
attr Kuechenlampe webCmd toggle:up:down
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

DeeSPe

Zitat von: tklein am 24 Februar 2017, 15:02:33
geil!! Das klappt.

Als was muss ich die Lampe jetzt deklarieren, damit ich die mit meinem StandardSkill schalten kann? Derzeit wird sie von Alexa werder mit Typ (genericDeviceType) lamp noch switch gefunden.
24 andere werden aber gefunden.


define Kuechenlampe dummy
attr Kuechenlampe alexaName Stripetest
attr Kuechenlampe alexaRoom Kueche
attr Kuechenlampe genericDeviceType lamp
attr Kuechenlampe group Stripes
attr Kuechenlampe room Küche,Stripes,Homekit,alexa
attr Kuechenlampe setList toggle up down
attr Kuechenlampe webCmd toggle:up:down


Ich nehme an es liegt am nicht vorhandenen "on off" in "setList".
Kenne zwar die Alexa Mappings nicht, aber bei homebridge ist das so dass diese in der setList sein müssen damit es erkannt wird.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

tklein

jetzt habe ich sie mit Alexa gefunden. Allerdings kann ich nicht dimmen. Befehl kann für das Gerät nicht gefunden werden. Das sollte der Standardskill doch auch können oder?
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

Master_Nick

Meinen Dummy kann ich mit dem Smart Home Skill (dem nicht Custom) Dimmen schau mal hier rein und vergleiche mit deinem:
https://forum.fhem.de/index.php/topic,67721.0.html
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

tklein

Danke dafür, werde sehen, ob ich das anpassen/verstehen kann.
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

Master_Nick

Du kannst mich auch gerne Fragen, bei Unklarheiten - dein Thread hier hat mir maßgeblich geholfen.
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

tklein

da komme ich doch gleich drauf zurück. Bitte im Hinterkopf haben, dass ich ein Frischling bin.

attr Stripe homebridgeMapping Brightness=state,cmd=
--> was sagt das genau aus?

attr Stripe setList value:slider,0,1,100 on off
attr Stripe webCmd value
--> kann man so einfach die Werte aus der SetList übernehmen? Cool.

Wie müsste ich meinen Code anpassen, damit es bei mir auch klappt:


define Kuechenlampe dummy
attr Kuechenlampe alexaName Stripetest
attr Kuechenlampe alexaRoom Kueche
attr Kuechenlampe genericDeviceType lamp
attr Kuechenlampe group Stripes
attr Kuechenlampe room Küche,Stripes,Homekit,alexa
attr Kuechenlampe setList toggle up down on off
attr Kuechenlampe webCmd toggle:up:down:on:off

define toggle_Kuechenlame notify Kuechenlampe:toggle {`/home/pi/433Utils/RPi_utils/codesend 11508417 &`}
define up_Kuechenlampe notify Kuechenlampe:up {for (my $i=1;;$i!=10;;$i++) {`/home/pi/433Utils/RPi_utils/codesend 11508420 &`}}
define down_Kuechenlampe notify Kuechenlampe:down {for (my $i=1;;$i!=10;;$i++) {`/home/pi/433Utils/RPi_utils/codesend 11508418 &`}}
define n_Kuechenlampe_up_down notify Kuechenlampe:(up|down).* {my $dim=ReadingsVal($NAME,"dim",0);; $dim+=$EVENT eq "up"?10:-10;; $dim=$dim>100?100:$dim<0?0:$dim;; fhem "setreading $NAME dim $dim"}
define off_Kuechenlampe notify Kuechenlampe:off {system(" /home/pi/433Utils/RPi_utils/codesend 11508417 &")}
define on_Kuechenlampe notify Kuechenlampe:on { system("/home/pi/433Utils/RPi_utils/codesend 11508417 &")}


Hast du das genutzt?:


sub my_HierDimmeIch($)
{
  my ($Event) = @_;
  my $ActValue = ReadingsNum("Gerät", "Reading", Default);

  # um zu sehen was kommt / wenn zu viel/falsches kommt evtl. dann statt $EVENT -> $EVTPART1 $EVTPART2 etc. (hier wäre dann das mit value auch kein Problem: EVTPART1 oder EVTPART2 wäre dann nur die Zahl)
  Log(1, "my_HierDimmeIch   Event: $Event");

  # hier was immer nötig ist zu dimmen

  # abspeichern des aktuellen Wertes
  {fhem "setReading DIMMDUMMY READING_NAME $ActValue "}

}


Wo kam das her?


setreading Streifen newstate [Streifen:state]
if ([Streifen:state] = "on") { set Stripe.Strom on }
if ([Streifen:state] = "off") { set Stripe.Strom off }
if ([Streifen:state] = "0") { set harmony_37861872 Dimm- }
if ([Streifen:state] = "5") {}


Hoffe, du hast viel Geduld  :D
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

Master_Nick

#25
Vorab: Alle Antworten spiegeln mein aktuelles Wissen wieder :-) Sie müssen nicht fehlerfrei sein.

attr Stripe homebridgeMapping Brightness=state,cmd=
--> was sagt das genau aus? 

Antwort: Es gibt an Alexa weiter, dass der Device ein Helligkeitslevel beinhaltet und gedimmt werden kann und das über das Reading state. Also ein Dimmwert wird in das Reading state geschrieben. Das cmd= muss definiert werden sonst tauch ein undefined vor dem Dimmwert im Reading State auf. Ursprünglich stand dort value, aber meine weitere Planung kann da reine Zahlen besser verarbeiten als Text + Zahl. Somit über probieren heraus bekommen, dass es so einfach nur einen Zahlenwert liefert.


Wie müsste ich meinen Code anpassen, damit es bei mir auch klappt?

Antwort - da kommt darauf an wie du per Sprache deinen Device steuern möchtest. Ich arbeite mit schalte ein/aus und schalte auf X %. Oder Setze auf X %.
Wie dein up und down als Sprachbefehl lauten soll ist mir unklar :-) Aber heller und dunkler wäre ja ne Idee sofern das integriert ist.

Meine Idee daher für den Dummy:

define Kuechenlampe dummy
attr Kuechenlampe alexaName Stripetest
attr Kuechenlampe alexaRoom Kueche
attr Kuechenlampe genericDeviceType light
attr Kuechenlampe group Stripes
attr Kuechenlampe room Küche,Stripes,Homekit,alexa
attr Kuechenlampe setList state:slider,0,1,100 toggle up down on off
attr Kuechenlampe webCmd state

Für dein Notify, du könntest es auch alles in ein Notify packen:

define Steuerung_Kuechenlame notify Kuechenlampe {
if ([Kuechenlampe:state] = "toggle") {`/home/pi/433Utils/RPi_utils/codesend 11508417 &`}
if ([Kuechenlampe:state] = "up") {for (my $i=1;;$i!=10;;$i++) {`/home/pi/433Utils/RPi_utils/codesend 11508420 &`}}
if ([Kuechenlampe:state] = "down") {for (my $i=1;;$i!=10;;$i++) {`/home/pi/433Utils/RPi_utils/codesend 11508418 &`}}
if ([Kuechenlampe:state] = "off") {system(" /home/pi/433Utils/RPi_utils/codesend 11508417 &")}
if ([Kuechenlampe:state] = "on") { system("/home/pi/433Utils/RPi_utils/codesend 11508417 &")}
}

Es fehlt aktuell genau das, was ich selber noch für mich bauen muss und noch nicht so funktional umsetzen kann wie ich es möchte.
Ein if, dass auf alle Zahlenwerte im Reading state reagiert und bemessen an einem gespeicherten Wert des Dimmstandes dementsprechend oft hoch oder runter dimmt.
Das ist definitiv machbar indem man über einen regex auf state reagiert. Aber es ist etwas mehr logik und etwas komplexer... noch fehlte mir da die Zeit ;-D

Mein erster Versuch (zugegeben sehr abstrakt gehalten und ohne alle Zahlen in einem statement abzufrühstücken) war ja hier zu sehen: https://forum.fhem.de/index.php/topic,67721.msg592622.html#msg592622


Den nachfolgenden versteh ich gerade nicht was er machen soll, bzw den Sinn :-D
define n_Kuechenlampe_up_down notify Kuechenlampe:(up|down).* {my $dim=ReadingsVal($NAME,"dim",0);; $dim+=$EVENT eq "up"?10:-10;; $dim=$dim>100?100:$dim<0?0:$dim;; fhem "setreading $NAME dim $dim"}


Hast du das genutzt?
"sub my_HierDimmeIch($)"

Antwort: bisher noch nicht getestet oder ausgewertet.

Wo kam das her?
setreading Streifen newstate [Streifen:state]
if ([Streifen:state] = "on") { set Stripe.Strom on }
if ([Streifen:state] = "off") { set Stripe.Strom off }
if ([Streifen:state] = "0") { set harmony_37861872 Dimm- }
if ([Streifen:state] = "5") {}

Antwort: Von mir, ein erster gedanklicher Entwurf. Der würde noch auf Einzelzahlen reagieren statt alles in einem abzuarbeiten.

set Stripe.Strom on/off <- schaltet meinen IT Aktor ein der als Gerät in FHEM definiert ist.
set harmony_37861872 Dimm- und set harmony_37861872 Dimm+ dimmt über meinen Harmony Hub meinen LED Stripe.


Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

tklein

Salve,

attr Kuechenlampe setList state:slider,0,1,100 toggle up down on off
--> die Werte 0,1 und on,off haben doch die identische Wirkung, oder? was sagt die 100 aus?

Zitat
define n_Kuechenlampe_up_down notify Kuechenlampe:(up|down).* {my $dim=ReadingsVal($NAME,"dim",0);; $dim+=$EVENT eq "up"?10:-10;; $dim=$dim>100?100:$dim<0?0:$dim;; fhem "setreading $NAME dim $dim"}
--> das hat mir ein FHEM-Kollege (DeeSPe) zum Thema "Brightness Characteristic" gecoded. Verstanden habe ich das nicht richtig. Es geht darum, dass der Wert nicht unter 0 und über 100 gehen darf.

Zitat
attr Stripe homebridgeMapping Brightness=state,cmd=
--> das kann ich so übernehmen oder muss das erweitert werden? Falls ja wie/womit?

Fragen über Fragen.... :-)
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

DeeSPe

Wie schon erwähnt kenne ich mich nicht mit Alexa Mapping aus, sondern nur für homebridge.
Da aber beide vom selben Entwickler sind, gehe ich davon aus dass es auch ähnlich funktioniert.
Brightness musst Du mitteilen wo es seine Werte findet (Reading) und wie es diese setzen kann.

attr Stripe homebridgeMapping Brightness=dim,cmd=

Das Problem ist das cmd! Da es bei Dir kein cmd gibt mit welchem Du das Licht auf einen bestimmten Helligkeitswert setzen kannst. Du kann nur hoch/runter dimmen.
Sicher könnte man da auch noch was bauen, aber ein "dummes Devices" bleibt halt ein "dummes Device".

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Master_Nick

Also mit meinem kann ich den Dummy auf einen bestimmten Wert setzen. Problem ist aktuell auf diesen Wert auch richtig zu reagieren ;-)
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

tklein

FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2