AUTO_MODE gesetzt, aber in den Daten steht false

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Antworten
mstuebner
Beiträge: 73
Registriert: 16.07.2014, 22:47
Wohnort: Isen
Kontaktdaten:

AUTO_MODE gesetzt, aber in den Daten steht false

Beitrag von mstuebner » 25.12.2014, 14:50

Servus,

ich habe mit über Weihnachten mal wieder Zeit genommen an der HM zu programmieren und bin an einer Stelle angelangt wo ich keine Antwort finde.

Ich frage alle Heizkörper die in einer Favoritengruppe sind um ihren AUTO_MODE ab, um in einer Bedienoberfläche anzuzeigen, ob der AUTO_MODE eingeschaltet ist oder nicht. Dabei ist mir aufgefallen, dass immer der Wert "false" zurück kommt, auch wenn in der WebUI nachweislich AUTO steht, wie im Bild zu sehen ist. Selbiges Gilt auch für COMFORT_MODE, etc.

Wie kommt das?
2014-12-25 14_30_16-HomeMatic WebUI.png
Autom Mode in WebUI an
2014-12-25 14_30_16-HomeMatic WebUI.png (20.43 KiB) 2214 mal betrachtet
2014-12-25 14_29_37-CCU.IO.png
Alle Modes zeigen false
2014-12-25 14_29_37-CCU.IO.png (17.41 KiB) 2214 mal betrachtet
Vg Matthias
213 Kanaele in 36 Geraeten, 14 Geraetetypen:
1x HM-PBI-4-FM(Funk-Tasterschnittstelle 4-fach), 1x HM-RCV-50(CCU2 System), 4x HM-LC-Sw1PBU-FM(Funk-Schaltaktor 1-fach fuer Markenschalter), 1x HM-RC-19(Funk-Fernbedienung 19 Tasten), 8x HM-Sec-SCo(Funk- Tuer-/Fensterkontakt optisch), 2x HM-Sec-SC-2(Funk-Tuer-/ Fensterkontakt), 1x HM-RC-8(Funk-Handsender 8 Tasten), 10x HM-CC-RT-DN(Funk-Heizkoerperthermostat), 1x HM-PB-2-WM55-2(Funk-Wandtaster 2-fach im 55er Rahmen), 1x HM-LC-Sw4-DR(Funk-Schaltaktor 4-fach), 3x HM-ES-PMSw1-Pl(Funk-Schaltaktor mit Leistungsmessung), 1x HM-OU-LED16(Funk-Statusanzeige LED 16), 1x HM-Sec-RHS(Funk-Fenster-/ Drehgriffkontakt), 1x HM-TC-IT-WM-W-EU(Funk-Wandthermostat)
--------------------------------------------
https://github.com/jollyjinx/homematic/ ... entory.hms

Benutzeravatar
jollyjinx
Beiträge: 129
Registriert: 18.03.2014, 14:04
Wohnort: Taufkirchen b. München
Danksagung erhalten: 2 Mal

Re: AUTO_MODE gesetzt, aber in den Daten steht false

Beitrag von jollyjinx » 25.12.2014, 19:59

Ich benutze die HMScript Sprache und da muss man den CONTROL_MODE datenpunkt auslesen.

! modes
! 0 = auto
! 1 = manu
! 2 = party
! 3 = boost

integer currentstate= dom.GetObject(datapoint#".CONTROL_MODE").Value();

Ich habe mal ein Script gebastelt mit dem man mit einem Schalter alle Thermostate zwischen AUTO und AUS stellen kann falls Du noch ein längeres Beispiel benötigst: ThermostatModeSwitch.hms
114 Kanaele in 22 Geraeten, 10 Geraetetypen:
2x HM-Sec-WDS-2(Funk-Wassermelder), 1x HM-Sec-SC-2(Funk-Tuer-/ Fensterkontakt), 1x HM-RCV-50(CCU2 System), 2x HM-ES-TX-WM(Funk-Sender fuer Energiezaehler-Sensor), 7x HM-CC-RT-DN(Funk-Heizkoerperthermostat), 1x HM-LC-Sw4-SM(Funk-Schaltaktor 4-fach), 5x HM-Sec-SCo(Funk- Tuer-/Fensterkontakt optisch), 1x HM-ES-PMSw1-Pl(Funk-Schaltaktor mit Leistungsmessung), 1x HM-LC-Sw1-Pl-2(Funk-Schaltaktor 1-fach), 1x HM-LC-Sw1PBU-FM(Funk-Schaltaktor 1-fach fuer Markenschalter)
--------------------------------------------
Inventur mit Jollys InventurScript erzeugt.

mstuebner
Beiträge: 73
Registriert: 16.07.2014, 22:47
Wohnort: Isen
Kontaktdaten:

Re: AUTO_MODE gesetzt, aber in den Daten steht false

Beitrag von mstuebner » 25.12.2014, 20:18

jollyjinx hat geschrieben:Ich benutze die HMScript Sprache und da muss man den CONTROL_MODE datenpunkt auslesen.

! modes
! 0 = auto
! 1 = manu
! 2 = party
! 3 = boost
Mit dem Hinweis finde ich natürlich sofort, dass in Teil 4 auf Seite 17 die Information zu finden ist. Erst mal großes DANKE! Das hätte ich nie gefunden.

Interpretiere ich das jetzt korrekt, dass ich zum Skriptgesteuerten setzen des Modus z.B. MANU_MODE auf 1 setze und den gesetzten Modus in CONTROL_MODE finde? Zumindest würde ich Dokumentation und Deinen Code so interpretieren.

vg Matthias
213 Kanaele in 36 Geraeten, 14 Geraetetypen:
1x HM-PBI-4-FM(Funk-Tasterschnittstelle 4-fach), 1x HM-RCV-50(CCU2 System), 4x HM-LC-Sw1PBU-FM(Funk-Schaltaktor 1-fach fuer Markenschalter), 1x HM-RC-19(Funk-Fernbedienung 19 Tasten), 8x HM-Sec-SCo(Funk- Tuer-/Fensterkontakt optisch), 2x HM-Sec-SC-2(Funk-Tuer-/ Fensterkontakt), 1x HM-RC-8(Funk-Handsender 8 Tasten), 10x HM-CC-RT-DN(Funk-Heizkoerperthermostat), 1x HM-PB-2-WM55-2(Funk-Wandtaster 2-fach im 55er Rahmen), 1x HM-LC-Sw4-DR(Funk-Schaltaktor 4-fach), 3x HM-ES-PMSw1-Pl(Funk-Schaltaktor mit Leistungsmessung), 1x HM-OU-LED16(Funk-Statusanzeige LED 16), 1x HM-Sec-RHS(Funk-Fenster-/ Drehgriffkontakt), 1x HM-TC-IT-WM-W-EU(Funk-Wandthermostat)
--------------------------------------------
https://github.com/jollyjinx/homematic/ ... entory.hms

mstuebner
Beiträge: 73
Registriert: 16.07.2014, 22:47
Wohnort: Isen
Kontaktdaten:

Re: AUTO_MODE gesetzt, aber in den Daten steht false

Beitrag von mstuebner » 25.12.2014, 21:14

jollyjinx hat geschrieben:url=https://github.com/jollyjinx/homematic/ ... Switch.hms]ThermostatModeSwitch.hms[/url]
Ich habe das Skript mal ausprobiert und erstmal kein Ergebnis bekommen. Beim Debugging a la WriteLine() habe ich dann festgestellt, dass der Aufruf von:

Code: Alles auswählen

device.HSSID()
in Zeile 22 bei mir nicht ein "HM-CC-RT-DN" sondern ein "CLIMATECONTROL_RT_TRANSCEIVER" zurück gibt, genauso wie auch der Aufruf von "channel.HSSID()". Das Ergenis von channel.HSSID() und device.HSSID() sind identisch.

Als Testausgabe erhalte ich im Skript nur 0-0-0-0, da der Code in den Schleifen nicht ausgeführt wird.

Kann das sein? Mein gesamter Code anbei.

Code: Alles auswählen

string FavNameHeizung 				= 'Fav_Heizung';

integer auto_mode_state_counter 	= 0;
integer manu_mode_state_counter 	= 0;
integer party_mode_state_counter 	= 0;
integer boost_mode_state_counter 	= 0;

boolean debug                   	= false; 

integer auto_mode					= 0;
integer manu_mode					= 1;
integer party_mode					= 2;
integer boost_mode					= 3;

string deviceID;

foreach(deviceID, dom.GetObject(FavNameHeizung).EnumUsedIDs()) {
    var device = dom.GetObject(deviceID);
    if(device.HSSID() == "HM-CC-RT-DN") 
	{
        string channelid;                                                                                                           
        foreach(channelid,device.Channels().EnumUsedIDs())
        {
            var channel = dom.GetObject(channelid);
            if( "CLIMATECONTROL_RT_TRANSCEIVER" == channel.HSSID() )
            {
                var     interface   =   dom.GetObject(channel.Interface());
                var     datapoint   =   interface#"."#channel.Address();
                integer currentstate=  dom.GetObject(datapoint#".CONTROL_MODE").Value();
                
				if(currentstate == auto_mode)
				{
					auto_mode_state_counter = auto_mode_state_counter + 1;
				}

				if(currentstate == manu_mode)
				{
					manu_mode_state_counter = manu_mode_state_counter + 1;
				}

				if(currentstate == party_mode)
				{
					party_mode_state_counter = party_mode_state_counter + 1;
				}

				if(currentstate == boost_mode)
				{
					boost_mode_state_counter = boost_mode_state_counter + 1;
				}
			}
        }
	}
}

WriteLine(auto_mode_state_counter # "-" # boost_mode_state_counter # "-" # party_mode_state_counter # "-" # manu_mode_state_counter);
213 Kanaele in 36 Geraeten, 14 Geraetetypen:
1x HM-PBI-4-FM(Funk-Tasterschnittstelle 4-fach), 1x HM-RCV-50(CCU2 System), 4x HM-LC-Sw1PBU-FM(Funk-Schaltaktor 1-fach fuer Markenschalter), 1x HM-RC-19(Funk-Fernbedienung 19 Tasten), 8x HM-Sec-SCo(Funk- Tuer-/Fensterkontakt optisch), 2x HM-Sec-SC-2(Funk-Tuer-/ Fensterkontakt), 1x HM-RC-8(Funk-Handsender 8 Tasten), 10x HM-CC-RT-DN(Funk-Heizkoerperthermostat), 1x HM-PB-2-WM55-2(Funk-Wandtaster 2-fach im 55er Rahmen), 1x HM-LC-Sw4-DR(Funk-Schaltaktor 4-fach), 3x HM-ES-PMSw1-Pl(Funk-Schaltaktor mit Leistungsmessung), 1x HM-OU-LED16(Funk-Statusanzeige LED 16), 1x HM-Sec-RHS(Funk-Fenster-/ Drehgriffkontakt), 1x HM-TC-IT-WM-W-EU(Funk-Wandthermostat)
--------------------------------------------
https://github.com/jollyjinx/homematic/ ... entory.hms

Benutzeravatar
jollyjinx
Beiträge: 129
Registriert: 18.03.2014, 14:04
Wohnort: Taufkirchen b. München
Danksagung erhalten: 2 Mal

Re: AUTO_MODE gesetzt, aber in den Daten steht false

Beitrag von jollyjinx » 25.12.2014, 23:33

Ich habe zwar gerade keinen Zugriff auf die ccu denke aber das das Script nicht funktioniert weil du einen Kanal als Objekt bekommst und nicht ein device. Nehme mal die richtige Id so wie in meinem originalscript anstelle der Favnamens.

patrick
114 Kanaele in 22 Geraeten, 10 Geraetetypen:
2x HM-Sec-WDS-2(Funk-Wassermelder), 1x HM-Sec-SC-2(Funk-Tuer-/ Fensterkontakt), 1x HM-RCV-50(CCU2 System), 2x HM-ES-TX-WM(Funk-Sender fuer Energiezaehler-Sensor), 7x HM-CC-RT-DN(Funk-Heizkoerperthermostat), 1x HM-LC-Sw4-SM(Funk-Schaltaktor 4-fach), 5x HM-Sec-SCo(Funk- Tuer-/Fensterkontakt optisch), 1x HM-ES-PMSw1-Pl(Funk-Schaltaktor mit Leistungsmessung), 1x HM-LC-Sw1-Pl-2(Funk-Schaltaktor 1-fach), 1x HM-LC-Sw1PBU-FM(Funk-Schaltaktor 1-fach fuer Markenschalter)
--------------------------------------------
Inventur mit Jollys InventurScript erzeugt.

Antworten

Zurück zu „HomeMatic allgemein“