Seite 2 von 2

Re: Wärmepumpe Modbus einbinden

Verfasst: 19. Jan 2024 11:11
von klaus1
Damit gehts jetzt. erste Überprüfung entfernt:
if(Modbus_Energy_Waermepumpe.previousState(true) !== null)

Code: Alles auswählen

rule "DAY_ENERGY_WAERMEPUMPE"
when
    Item Modbus_Energy_Waermepumpe changed
then
    //if(Modbus_Energy_Waermepumpe.previousState(true) !== null) {
        val nTotal    = (Modbus_Energy_Waermepumpe.state as Number).floatValue
        val nHistoric = (Modbus_Energy_Waermepumpe.historicState(now.with(LocalTime.MIDNIGHT).minusHours(1)).state as Number).floatValue
        //logInfo("fronius","Total: {} Historisch: {} Tagesertrag: {}",nTotal,nHistoric,nTotal-nHistoric)
        Modbus_Energy_Waermepumpe_DAILY.postUpdate(nTotal - nHistoric)
    //}
end

Re: Wärmepumpe Modbus einbinden

Verfasst: 1. Feb 2024 14:38
von klaus1
wie kann ich auf folgendes Register zugreifen:
charge_pilot_state 8092 1 r CP: 0 = A (warten),
1 = B (Fahrzeug erkannt),
2 = C (laden),
3 = D (laden mit Lüftung),
4 = E (kein Strom),
5 = F (Fehler)

mein Versuch:

Code: Alles auswählen

Bridge modbus:tcp:cfos2 "cfos eMobility Wallbox Zähler" [
    host="192.168.1.46", // IP der Modbus Schnittstelle
    port=4701,
    id=1
 ] {
     Bridge poller wallbox "Wallbox-Zähler" [
         start=8041,
         length=79,
         type="holding"
     ] {
         Thing data charge_pilot_state "Modbus_Wallbox_State_Thing" [readStart="8092", readValueType="int32" ]
     }
 }
als item:

Code: Alles auswählen

	Number Modbus_State_Wallbox "Modbus_State_Wallbox" {channel="modbus:data:cfos2:wallbox:charge_pilot_state:number"}
Liefert leider den merkwürdigen Wert: 65596

Re: Wärmepumpe Modbus einbinden

Verfasst: 1. Feb 2024 15:19
von klaus1
int16 muss es natürlich lauten. dann klappts danke