AVM Smarthome Devices wie Fritz!Powerline 546e Auslesen und Schalten

Kann es sein, dass nach dem Update der 546 auf die neue Software OS 6.04 das Auslesen der Power-Werte nicht mehr geht?

Gruß

Mit welchem Script? Bei mir klappt das auch mit 6.04

Tommi

Es gibt neue fritz_aha* Scripte, welche die neue AHA-API ab Fritz!OS6.20 nutzen. Neben den Anpassungen an die API und einigen Bugfixes ist es nun auch möglich, den Temperatursensor des DECT!200 auszulesen. Da die Fritz!OS Version 6.20 noch nicht überall zur Verfügung steht, habe ich das Reader Script für die neue API extra abgelegt (fritz_aha_reader2.php). Die anderen Scripte nutzen die weiterhin verfügbare ältere API, nur ohne Erweiterungen.

Alle Details wieder unter http://www.tdressler.net/ipsymcon/fritz_aha.html

Tommi

Danke für das tolle Skript,
hab nur noch das Problem mit dem Status auslesen, also das sich die Variable von An bzw. Aus ändert. Nur nach x Sekunden o. x Minuten wie man es in der fritz_aha_reader2.php Ereignis festlegt.

Meine Daten:

FB-OS Version 6.23
IPS-Vers. 3.30

Zunächst muss die Fritzbox die Änderung mitbekommen. Dann kann das Script den Status auch im eingestellten Intervall von dort abholen.

Tommi

Danke für die schnelle Antwort.
Da muss ich nochmal nachbohren, wenn ich aus der FB o. FritzApp schalte wird der Status sofort übermittelt (An/Aus) zu IPS. Wenn ich vom IPS aus schalte funktioniert der Schaltbefehl zur dect 200 auch gleich, aber der Status ändert sich erst wenn das „fritz_aha_reader2.php“ ausgelöst durch das festgelegte Ereigniss ausgführt wird (AN/AUS) im IPS.
Ist da evt. mein Denkfehler, muss als erstes die FB die Änderung mitbekommen?

Wenn man die Fritzbox manuell schaltet, kann es mM. nach nur ein zeitlicher Zufall gewesen sein, das der Status in IPS gesetzt wurde. Denn das macht nur das Reader-Script, das von einem Klick in der Fritzbox oder der App nichts mitbekommt. Das Aktor-Script und das Reader Script kennen sich auch nicht. Die AHA-API der Fritz-Box hält den Status beim Schalten auch nicht fest sondern holt ihn mit der getdeviceinfo Funktion erst ab, wenn sie gefragt wird. Man könnte aber im Aktor Script nach 1s gleich das Reader-Script starten, dann sollte der echte Status zeitnah abgefragt und angezeigt werden.

Tommi

Ok Tommi, jetzt hab ich es Verstanden!
Danke Dir :slight_smile:

Ich habe die Scripte etwas aktualisiert, damit man auch die Anmeldung mit Benutzernamen am FritzOS nutzen kann.
http://www.tdressler.net/ipsymcon/fritz_aha.html

Tommi

Ich nutze auch das Script, hat auch bisher super geklappt. Leider bekomme ich seit dem Fritz!Box Update auf die Version 84.06.36-31680 BETA keine Temparatur Werte mehr angezeigt. Im Log steht sie aber noch drin.
Hier die Meldung die ich vom Script bekomme:

Notice: Undefined index: Temperature in C:\IP-Symcon\scripts\55548.ips.php on line 119

Warning: Variable #0 existiert nicht in C:\IP-Symcon\scripts\55548.ips.php on line 119

Michael

Ach ja, ich nutze die 7390

an der Stelle wird die IPS VariablenID gebraucht. Das hat eigentlich nichts mit der FB zu tun. Versuche doch mal, den Fritz Smarthome Variablenbaum komplett zu löschen. Beim nächsten Lauf sollte alles wieder angelegt werden. Wenn nicht bitte mir einen Screenshot des Baumes und die Ausgabe des Scriptes mit einem in Zeile 96 eingefügten print_r($varids); schicken, gerne auch per PM.

Tommi

Danke,das hat geholfen.:slight_smile:

Die einzigste Änderung die ich gemacht hatte war halt das Update.

MIchael

Hallo,

vielen Dank für das Skript und die gute Doku. Ich habe jetzt noch zwei Probleme:

  1. Das Skript installiert sich immer auf höchster Ebene, ich will das aber lieber unter der FritzBox haben, die schon mit dem FritzBox-Projekt vom Nall chan angelegt ist. Leider gehen in dem Projekt ja die Smart-Home-Komponenten noch nicht. Wie kann ich denn diesem Skript hier beibringen, dass es bleibt wo es ist, wenn es verschoben wurde?

  2. Es wird alles wunderbar angezeigt, aber ich den Schalter des DECT200 nicht aus der IPS heruas betätigen. Was habe ich da noch zu tun?

Gruß
tango

Moin tango!

Zu 1) Um das Skript und alles an eine andere Stelle zu kopieren, müsstest du vmtl. einiges bearbeiten. Viele verwenden in ihren Projekten die Objektbaum-Position 0 (root) als Start und suchen dann nach der Kategorie mit dem Namen X und dementsprechend kann man diese Projekte dann nicht einfach verschieben. Da müsstest du also alle Skripte und alles selbst fest auf deinen Wunsch-Pfad anpassen.
> Ohne Anpassung funktioniert sonst nichts mehr oder weniger.

Grüße,
Chris

Hallo,

zum Ändern der Hierarchie musst Du die Funktion get_ips_vars anpassen. Es sollte rechen, in Zeile 212 die ID der eigenen Kategorie statt 0 einzutragen (ungetestet)

$master=@IPS_GetObjectIDByName($cat,0);

Zum Schalten ist das Script fritz_aha_actor vorgesehen, das als Eventscript eingetragen werden muss. Siehe http://www.tdressler.net/ipsymcon/fritz_aha.html

Tommi

Ich habe die Option für eine wählbare übergeordnete Kategorie in das fritz_aha_reader2 Script (V2.5 Download an der üblichen Stelle) gepackt. In Zeile 30 kann die ID dieser Kategorie eingetragen werden. Existiert diese nicht, beendet sich das Script mit einer Logmessage.

$master_parent=0; //start creation on this category ID (default root=IP-Symcon)

Tommi

Hallo zusammen,

Ich hab seit einiger Zeit das Problem, dass die Aktoren (egal ob 200er oder 546E) immer wieder, aber nicht immer! beim Schalten wieder auf den vorigen Zustand zurückspringen.

zB Kaffeemaschine wird per Wochenschaltung (skript unten) um 6:30 eingeschaltet, ich bekomme eine Mail, dass Aktor Kaffeemaschine/Status auf ON geht, und sofort wieder auf OFF. aber, wie gesagt, nicht immer.

Heute morgen hat hat sich die Kaffeemaschine sauber eingeschaltet, dafür brennt das Hoflicht (selbes Script, selbe Logik) immer noch…

Ich kann keine Logik erkennen, warum mal das eine, mal das andere spinnt.
Einzige (unlogische) Erklärung, das reader script läuft alle 10min, wenn eine Schaltung auf die exakt selbe Zeit fällt, schaltet der Aktor retour?!?

<?

$ABWESEND = 56092 /*[Calendar\Geplante Abwesenheit]*/;
$SWCASE = $_IPS['ACTION'];
echo $SWCASE;
#echo GetValue($ABWESEND);

switch ($SWCASE) {
#Schaltet ein
  case 1: //ID 1
	#wenn abwesend dann nicht einschalten
	if (GetValue($ABWESEND)){return;}
    SetValueBoolean(40949 /*[FRITZ Smarthome\Kaffeemaschine\Status]*/, true);
#	 SetValueString(55046 /*[Diverse scripte\E-mail\Nachricht]*/,"Kaffeemaschine ein");
    break;

#Schaltet aus
  case 2: //ID 2
   SetValueBoolean(40949 /*[FRITZ Smarthome\Kaffeemaschine\Status]*/, false);
 #  SetValueString(55046 /*[Diverse scripte\E-mail\Nachricht]*/,"Kaffeemaschine aus");
    break;
}

?>

Ausgangssituation:
4x Fritz!dect200
1x FRITZ!Powerline 546E
Fritzbox 7490 - Fritz!OS 06.30

fritz_aha_actor.php - V0.5 24.09.2015
fritz_aha_reader2.php - V2.5 27.11.2015
IP-Symcon 4.00, 23.12.2015, c04cc6bcbbe0

So richtig verstehe ich das Verhalten nicht. Die Status-Variable wird manuell geändert oder beim Lesen des Gerätes durch das Reader Script. Wenn man die Variable manuell ändert und damit das Actor Script (auf Variableänderung! getriggert) startet, dürfte der nachfolgende automatische Lauf des Reader-Programmes keine weitere Aktion nachziehen, da er nur den Zustand setzen wird, der schon vorher manuell eingestellt war, dh. keine Variablen-Änderung und damit einen erneuten Actor-Start auslösen.

Tommi

Ich plane den mit FritzOS 6.50 unterstützten Comet DECT Heizkörperregler und den Dect Repeater zu unterstützen. Allerdings kennt meine 7390 dieses FritzOS noch nicht und ich habe auch keinen HKR. Deshalb würde ich mich freuen, wenn mir jemand mit diesen Geräten die Deviceliste (das auskommentierte print $xmlstring; in Zeile 74 in fritz_aha_reader2.php wieder aktivieren und von Hand starten) per PN schicken kann.

Danke!
Tommi

Es hat sich zwar niemand auf meine Anfrage gemeldet, aber ich habe Dank der Unterstützung von Michael Strubbenhof trotzdem die Unterstützung des Comet Dect Heizkörpertermostat hinbekommen. Außerdem habe ich ein paar Altlasten entsorgt, hoffentlich die bis jetzt bekannten Fehler ausgemerzt und das Logging angepasst.

Da sich im Innern einiges, z.B. die VariablenNamen, geändert hat, bitte die Konfigurationshinweise beachten. Es ist notwendig, den kompletten Smarthome Baum und auch alle zugeordnten Events und Timer zu löschen. Das Readerscript wird Variablen, Timer und ActionsEvents beim erstem Lauf nun selber anlegen. Vorher bitte zumindest die Konfiguration im oberen Teil der Scripte bzgl. Login und Script-IDs anpassen.

siehe http://www.tdressler.net/ipsymcon/fritz_aha.html

Tommi