Antis FHT für V2

Du könntest auch die datasave variable auslesen:

$tmp = wddx_deserialize (GetValueString(22079 /*[HM Heizungssteuerung\HM_datasave]*/));

           //print_r ($tmp);
	$SOLL = $tmp['oldTempNeu']['Kinderzimmer Marie']['soll'];
	echo $SOLL;

Gibt dir die Solltemp von Kinderzimmer Marie.
geht bestimmt noch einfacher, aber ich habs so gemacht.

Das print_r zeigt dir mal den kompletten Array an, dann kanste das besser nachvollziehen

Perfekt, es funktioniert! Danke muckel!

Schön erklärt Jungs.

@DerStandart Irgendwie bekomme ich bei Deinem Alias immer Augenschmerzen. :smiley:

:slight_smile: Da musst Du durch …

Folgende Frage zum Script habe ich noch:
Wenn ich am Regler der FHT drehe um „per Hand“ eine Temperatur einzustellen, dann bleibt diese Temperatur aktiv, bis die der Zeitpunkt erreicht ist, wo in der Excel-Tabelle eine andere Temperatur steht, richtig?

Danke und Gruß,
Christoph

Yes Sir.

Anti kurz und schmerzlos :wink:

Perfekt, dann funktioniert ja alles! :slight_smile:

Danke!

Hi@all
das script läuft bei mir soweit recht gut bis auf 2-3 zimmer ich habe dort immer einen SollTemperatur zu Soll Temperatur (ausstehend)
auf dem Display steht auch nur die von mir in die FHt eingetragene Temperatur. Irgendwie springt das Teil nicht auf die per script eingetragene Temp…weis jemand rat?

:confused:

Reagieren die Überhaupt (Device mal manuell ne Temp setzen) ? Wenn nicht würde ich mal tippen Funkproblem oder nicht richtig angelernt …

hi Antis, danke für den Tipp lag offensichtlich an der funkverbindung habe die FHZ mal verlegt und siehe da es funzt :smiley:

mal eine andere frage ich würde gerne per Tracker dieses script auch ausführen, bsp. person x ist im haus bitte "normal"fahren wenn person x nicht im haus ist dann bitte „abwesend“ aktivieren…wie kann ich das mit deinem script lösen? mir fehlt da irgendwie die idee…selbst wenn ich 2 getrennte heizungsscripte bastle mit allem drum und dran würde ja das eine script das andere aushebeln da es ja alle 5 min aktiviert wird.mmmhhh ne idee

Hallo reblade,

Es wurde bereits weiter oben geschrieben:

Also einfach die Variable „profileoverride“ entsprechend setzen, damit ein anderes Profil aktiv wird.

Gruß,
Christoph

hi
ja aber per Hand setzten und nicht per Tracker oder geht das auch so?:confused:

Du kannst die Variable per Script setzen, welches durch die Aktualisierung der Variable des Trackers getriggert wird.

super, sowas hab ich mir auch vorgestellt jedoch bin ich kein programmierer könnte mich da jemand unterstützen :cool:

Ich würde es so machen:

 $anwesend = GetValueBoolean(ID);
 if(!anwesend){
	SetValueString(31441  /*[fht_profileoverride]*/, "Abwesend");
 }

Ersetze ID in Zeile 1 durch die ID der Variable, die sich bei An- und Abwesenheit ändert (also die, des Trackers).
Ersetze die 31441 durch die ID der Variable fht_profileoverride.

Das Script bewirkt, dass bei Abwesenheit das Profil „Abwesend“ aktiv wird.

Ich kenne den Tracker leider (noch) nicht und gehe daher mal davon aus, dass die Variable bei Anwesenheit = TRUE und bei Abwesenheit = FALSE ist. Vielleicht kann ja mal jemand was dazu sagen, der den Tracker im Einsatz hat.

Gruß,
Christoph

Hi Christoph,
danke für deine hilfe , den Tracker den ich meine ist der aus dem shop und ja er gibt false oder true aus…nettes teil darüber steuere ich bsp. meinen navibot wenn die frau das haus verlässt fängt unser kleiner R2 an zu saugen…und nun wollte ich darüber auch die heizung steuern.
Nun zu deinem script diese Variable „fht_profileoverride“ muss ich selbst erstellen—oder? Ich probier es mal…
gruß alex

hi christoph,
hat super geklappt ich habe dein script um geändert und mit dem Tracker löse ich es nun aus…supi danke.
Folgendes hab ich nun gemacht:
1.String Variable mit fht_profileoverride erstellt.


2.Scripte erstellt:
eins mit Abwesend

<?
 SetValueString(38957 /*[fht_profileoverride]*/ , "Abwesend");
?>

und eins mit Anwesend

<?
SetValueString(38957 /*[fht_profileoverride]*/ , "Anwesend");
?>

diese sind nun mit dem Ereigniss Tracker true bzw false verknüpft.


Des Weiteren musste ich die Exceltabele von Antis Script(„temps.xls“) das Profil „Normal“ auf Anwesend ändern.
Und schon funktioniert es. Das bedeutet wenn meune Frau das Haus verlässt fahren die FHT gem der Excel tabele auf Abwesend und wenn sie wieder zuhause ist ebend wieder auf Anwesend.

Super sache jetzt.
Nun nur noch die Fenstermelder hinzufügen und man hat ein super Heizungsscript.
Danke nochmal an Antis und DerStandart :wink:

Jetzt hab ich auch noch mal eine Frage:

In der Excel-Tabelle auf der Tabelle 1 gibt es unten die Zeilen, wo ich die IDs der FHTs eintrage. Daneben stehen Uhrzeiten. Das sind wohl irgendwelche Uhrzeiten, in denen die FHTs auf Automatik gestellt werden soll??? Ich verstehe nicht, was mir diese Zeiten sagen und was ich dort eintragen soll. Ich hätte es gerne so, dass die FHTs niemals in den Automatikmodus wechseln, sondern dauerhaft auf manuell stehen. Kann mir jemand auf die Sprünge helfen?

Hintergrund ist, dass ich heute morgen ein kaltes Badezimmer betreten habe und die FHT auf „Auto“ stand. Die Programme sind bei mir nicht in der FHT hinterlegt, die Steuerung übernimmt IPS komplett.

Gruß,
Christoph

Wie ich irgendwo schon lang und breit geschrieben habe, verhält es genau umgekehrt. Die Dinger werden kurz auf Manuell gestellt (zu den Zeiten) und stehen sonst immer auf Auto. Damit erreichen wir, dass wenn IPS mal nicht läuft die Basisprogrammierung wirksam wird. Wenn IPS aber läuft stellt es zu den Zeiten wo die FHT gerne selber schalten würde kurz auf Manuell.

So die Theorie. Wenns da Probleme mit gibt trag halt 24:99 oder sowas ein und stell sie einmal alle auf manuell oder kommentier die Zeile im Script aus wo umstellen auf Auto gesendet wird, dann hat man den Nebeneffekt das das Script 2 mal täglich sendet: Stell dich auf Manuell. Falls mal jmd rumgefummelt hat oder so.

Anti

Hallo liebe Scriptnutzer. Ich hab dann mal ein Update erstellt.

Features / Änderungen:

  • Native für 2.0 angepasst
  • Temperaturen wie gehabt über Excel
  • Feedback (Temperatur) Variable muss nicht mehr angegeben werden, wird automatisch ermittelt (in Excel entsprechend die Spalte entfernt)
  • Excel Plugin gefixt (diese deprecated Meldung)
  • Die Meldungen etwas gerafft bzw gleichzeitig mehr Information reingepackt
  • Alarm-Management (beta) (wenn keine Temperaturen eines FHT mehr empfangen werden diverese Aktionen um den wieder ans mitspielen zu kriegen)

Anbei das komplette ganze gelumpe.

Details zum Alarm-Management. Ganz unten im Script findet sich die Funktion fht_noconnect_action. Dort kann man hinterlegn was passieren soll wenn die Temperatur zu einem (oder mehreren) FHT nicht mehr aktualisiert wird.
Ganz oben gibts neue Config Varibalen in denen man einstellen kann
a) ab einer wie langen aktualisierungs Pause überhaupt was gemacht werden soll
b) in welchen Zeitintervallen da nach dann zum jeweils nächsten Korrekturversuch übergegangen werden soll.

// Hier reinschreiben was passieren soll im $nr ten versuch einen kositenten Zustand wiederherzustellen
function fht_noconnect_action ($nr, $id, $sollTemp, $ort="") {
	global $mailId;
	switch ($nr) {
	   case 1:
	     	echo "Aktion Nr.$nr um eingeschlafene Temperaturmessung wiederzubeleben ($ort) resend Temperature - 0.5°";
   	  	SMTP_SendMail($mailId,"FHT ALERT","Versuch $nr - resend Temperature - 0.5° ($ort) zwecks anderem Wert");
			FHT_SetTemperature(intval($id), floatval ($sollTemp-0.5));
      	break;
	   case 2:
	     	echo "Aktion Nr.$nr um eingeschlafene Temperaturmessung wiederzubeleben ($ort) - Restart IPS";
   	  	SMTP_SendMail($mailId,"FHT ALERT","Versuch $nr ($ort) - Restart IPS/FHT");
			$ourFileName = "trigger";
			$ourFileHandle = fopen($ourFileName, 'w') or die("can't open file");
			fclose($ourFileHandle);
      	break;
	   case 3:
	     	echo "Aktion Nr.$nr um eingeschlafene Temperaturmessung wiederzubeleben ($ort) resend Temperature + 0.5°";
   	  	SMTP_SendMail($mailId,"FHT ALERT","Versuch $nr - resend Temperature + 0.5° ($ort) zwecks anderem Wert");
			FHT_SetTemperature(intval($id), floatval ($sollTemp+0.5));
      	break;
	   case 4:
	     	echo "Aktion Nr.$nr um eingeschlafene Temperaturmessung wiederzubeleben ($ort) - Restart IPS";
   	  	SMTP_SendMail($mailId,"FHT ALERT","Versuch $nr ($ort) - Restart IPS/FHT");
			$ourFileName = "trigger";
			$ourFileHandle = fopen($ourFileName, 'w') or die("can't open file");
			fclose($ourFileHandle);
      	break;
	   case 5:
	     	echo "Aktion Nr.$nr um eingeschlafene Temperaturmessung wiederzubeleben ($ort) - Restart IPS Machine";
   	  	SMTP_SendMail($mailId,"FHT ALERT","Versuch $nr ($ort) - Restart IPS Machine");
			exec ("shutdown -f -r -t 01");
			break;
	   case 6:
	     	echo "Aktion Nr.$nr um eingeschlafene Temperaturmessung wiederzubeleben ($ort)- Give UP
";
	     	echo "Wiederbelebung aufgegeben - Bitte eingreifen !";
   	  	SMTP_SendMail($mailId,"FHT ALERT","Wiederbelebung aufgegeben ($ort) - Bitte eingreifen !");
      	break;
	}
}

Bei mir (im Beispiel) passieren folgende Dinge:

  1. Senden einer neuen Temperatur an den fraglichen FHT
  2. Beende IPS Dienst -> deaktiviere FHT -> aktiviere FHT -> Starte IPS Dienst
  3. Senden einer neuen Temperatur an den fraglichen FHT
  4. Beende IPS Dienst -> deaktiviere FHT -> aktiviere FHT -> Starte IPS Dienst
  5. Letzer Versuch -> Reboot der IPS Maschiene (geht nat. nur wenn bei euch alles was ihr braucht von allein startet)
  6. Meldung dass das Skript aufgibt (naja :wink: )

Für Punkt 2 liegen Autoit Scripte bei. (auch im Quelltext). Zusätzlich wird noch DEVCON von MS benötigt. Googeln, Runterladen, auch in Script Dir oder in den Pfad packen. Das Script „restart ips on trigger.exe“ muss im Hintergund laufen (also in Autostart oder so packen). Dieses führt die in Punkt 2 und 4 beschrieben Aktionen durch sobald eine Datei „trigger“ existiert. Falls jmd das Script für Homematic oder so einsetzen möchte oder genrell nur etwas braucht das IPS bei bedarf neu starten kann -> entweder autoit script anpassen, oder die restart-fhz1300 nicht ins Verzeichnis legen, dann passiert dasselbe nur ohne FHZ deaktivieren/aktivieren.

Generelle Installationshinweise (für alle die die nicht die ganzen Threads durchlesen wollen und neu sind)
- Scripte in den Scripts Ordner -> excel ist ein unterverzeichniss

  • Antis_fht.ips.php in IPS einbinden
  • „restart ips on trigger.exe“ muss im Hintergund laufen (also in Autostart oder so packen) - wenn mans Alarmmangemend in dieser Form nutzen möchte
  • Dafür auch wird auch DEVCON von MS benötigt. Googeln, Runterladen, auch in Script Dir oder in den Pfad packen.
  • Excel Tabelle anpassen
  • Für den Button „jetzt anwenden“ die Datei fht_resend.php in den webfront ordner packen
    -Script Triggern -> alle 5 Minuten, bei Änderung von fht_resend auf True

So nun viel Spass damit
Anti


Anbei noch ein kleiner Fix
-> Alarm-management hält nun nach IPS Neustart erstmal mindestens $AlarmNachMin die Füsse still (sonst nach ner weile Dienst down gleich das ganze programm …) (noch verbesserungsfähig)
-> zurücksetzen auf Auto-Mode auskommentiert (weil ein FHT bei mir gerade Zeit nicht nimmt und der nervt :wink: )

Und Konzeptstudie:
Have a look
Meinugen und Ideen -> Her damit.

Anti

Antis FHT 2.0.rar (662 KB)

antis_fht.ips.rar (5.02 KB)

wow supi, werde ich denächst ausprobieren, sobald ich mit meinem neuen IPS Server fertig bin :slight_smile:

Danke