FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: ChristianKnorr am 30 Dezember 2013, 23:47:04

Titel: [gelöst] Wie Steckdosen togglen die es nicht können?
Beitrag von: ChristianKnorr am 30 Dezember 2013, 23:47:04
Hallo zusammen,
ich habe diese Funksteckdosen (http://www.fhemwiki.de/wiki/Intertechno_Code_Berechnung#REV_Telecontrol), die kein toggle kennen.
Nun habe ich mir diese Seite (http://www.fhemwiki.de/wiki/99_myUtils_anlegen#Eigene_Programmdatei_laden) zu Gemüte geführt, doch da blicke ich nicht durch.

Ich habe diesen Inhaltpackage main;
use strict;
use warnings;
use POSIX;
sub
myUtils_Initialize($$)
{
my ($hash) = @_;
}
##########################################################
# Untoggle
# toggle-Vorgänge in den Status on/off umsetzen
sub Untoggle($) {
my ($obj) = @_;
if (Value($obj) eq "toggle"){
  if (OldValue($obj) eq "off") {
   {fhem ("setstate ".$obj." on")}
  }
  else {
   {fhem ("setstate ".$obj." off")}
  }
}
else {
  {fhem "setstate ".$obj." ".Value($obj)}
}
}
1;
in die Datei 99_klingelUtils.pm geschrieben. FHEM mit shutdown restart neu gestartet damit die Änderung übernommen wird.

Aber wie jetzt weiter? Ist das hier richtig?define Pfirsichbaum_toggle notify Pfirsichbaum {Untoggle("@")}Und dann{ Untoggle("Pfirsichbaum_toggle") }

Da tut sich aber nichts. Wo mache ich den Fehler?
Titel: Antw:Wie Steckdosen togglen die es nicht können?
Beitrag von: Tion am 02 Januar 2014, 08:14:17
Versuchs mal einfach mit

define  Pfirsichbaum_toggle notify Pfirsichbaum  { if (Value("Steckdose") eq "off") { fhem("set Steckdose on") } else { fhem("set Steckdose off") }}
Titel: Antw:Wie Steckdosen togglen die es nicht können?
Beitrag von: ChristianKnorr am 05 Januar 2014, 10:15:07
Hallo Elric,
habe ich gemacht. Aber wie toggle ich dann?
trigger Pfirsichbaum_toggle toggleDas funktioniert nichttrigger Pfirsichbaum_toggleDas auch nicht. ???
Titel: Antw:Wie Steckdosen togglen die es nicht können?
Beitrag von: roedert am 05 Januar 2014, 14:15:28
define  Pfirsichbaum_toggle notify Pfirsichbaum  { if (Value("Steckdose") eq "off") { fhem("set Steckdose on") } else { fhem("set Steckdose off") }}

Auslösen mit

trigger Pfirsichbaum
Titel: Antw:Wie Steckdosen togglen die es nicht können?
Beitrag von: ChristianKnorr am 05 Januar 2014, 17:33:55
Dann kommtPlease define Pfirsichbaum first

Okay, auf die Gefahr hin das es ein Anfäger-Bedienungsfehler ist hier Stepbystep:

Die Steckdose heißt Pfirsichbaum_Steckdose und die kann ich auch on und off schalten - das funktioniert.
Dann gebe ich das in die Befehlszeile der Weboberfläche ein:define  Pfirsichbaum_toggle notify Pfirsichbaum { if (Value("Pfirsichbaum_Steckdose") eq "off") { fhem("set Pfirsichbaum_Steckdose on") } else { fhem("set Pfirsichbaum_Steckdose off") }}

Dann trigger Pfirsichbaum und es erscheint wie gesagt dass es nicht definiert ist.
Testweise trigger Pfirsichbaum_toggle bringt zumindest keinen Fehler, ich lande lediglich in der Heimatseite der Weboberfläche. Die Lampen bleiben aber unverändert.

------------------------------------------


JA! Endlich :D
So geht das:define  Pfirsichbaum_toggle notify Pfirsichbaum { if (Value("Pfirsichbaum") eq "off") { fhem("set Pfirsichbaum on") } else { fhem("set Pfirsichbaum off") }}
Wobei Pfirsichbaum die Steckdose ist und folgerichtig jeweils mit trigger Pfirsichbaum getoggelt wird.