Ankündigung

Einklappen
Keine Ankündigung bisher.

via modbus komma werte übertragen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    via modbus komma werte übertragen

    Ich bekomme 231 angezeigt, hier der Log.
    17:37:01.637 INFO runtime.busevents[:26] - Temperature_GF_Toilet state updated to 231
    Code:
    Number Temperature_GF_Toilet 	"Temperature [%d °C]"	<temperature>	(Temperature, GF_Toilet) {modbus="slave3:1"}
    Bedeutet, es sind 23,1 °C
    Wie kann man es in der rules lösen, dass nicht 231,0°C angezeigt wird sondern 23,1°C?

    Ich hab folgendes versucht:
    Code:
    rule "transform"
     when 
      Item one changed or  
      System started
     then
      val two2= one.state as DecimalType
      postUpdate(two2, one/10 )
    end
    Code:
    Number one "One[%d °C]"     {modbus="slave3:1"}
    
    Number two2 "Two[%d °C]"    (Temperature, GF_Toilet)
    Bekomme aber
    Couldn't resolve reference to JvmIdentifiableElement '/'.

    17:19:54.315 ERROR o.o.c.s.ScriptExecutionThread[:50] - Error during the execution of rule 'transform': The name '<XFeatureCallImplCustom> / <XNumberLiteralImpl>' cannot be resolved to an item or type.
    Bin seit 2 Tagen dabei und bekomme es nicht hin.

    Wie kann man es lösen?

    #2
    Hallo
    Siehe hier #9:
    https://knx-user-forum.de/openhab/37...rchlaufen.html

    Wenn dein 2. Item two2 ist, dann darf die Variable nicht auch two2 heißen.

    Code:
    rule "transform"  
    when    Item one changed or     
    System started  
    then   
    val two= (one.state as DecimalType).floatValue / 10   
    postUpdate(two2, two) 
    end
    Nicht getestet.
    Gruß NetFritz
    KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
    WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
    PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

    Kommentar


      #3
      Code:
      17:38:30.291 INFO  runtime.busevents[:26] - one state updated to 225
      17:38:30.383 WARN  o.o.u.i.i.ItemUIRegistryImpl[:257] - Exception while formatting value '22.5' of item two2 with format '%d ?C': java.util.IllegalFormatConversionException: d != java.math.BigDecimal
      Bekomme im Designer auch keine Fehler.
      Ich suche auch schon seit 2 Tagen und nix anderes als dies gefunden:
      https://groups.google.com/forum/#!ms...c/VdYkjK2sqx0J

      So hats dann geklappt
      Code:
      Number two2 "Two[%.1f  °C]"    (Temperature, GF_Toilet)
      Danke dir vielmals.

      Kommentar


        #4
        Kann man es auch irgendwie lösen dass ich nicht für jedes Item eine rules schreiben muss?

        Code:
        /* Indoor Temperatures */
        Number Temperature_GF_Corridorvar	"Temperature [%d °C]"												{modbus="slave3:1"}
        Number Temperature_GF_Corridor 		"Temperature [%.1f °C]"	<temperature>	(Temperature, GF_Corridor)	 
        Number Temperature_GF_Toiletvar 	"Temperature [%d °C]"   											{modbus="slave2:1"}
        Number Temperature_GF_Toilet 		"Temperature [%.1f °C]"	<temperature>	(Temperature, GF_Toilet)
        Bei der demo.items ist eine Gruppe für Temperaturen angelegt:
        Code:
        Group:Number:AVG 				Temperature	"Avg. Room Temperature [%.1f °C]" 	<temperature>	(Status)
        Habs so versucht, klappt aber nicht
        Code:
        rule "transform"  
        when    Item Temperature changed or     
        System started  
        then   
        val Temperature_variable= (Temperature.state as DecimalType).floatValue / 10   
        postUpdate(Temperature, Temperature_variable) 
        end
        Wie macht man das?

        In C würde ich es so nach dem Muster machen:
        Code:
            
        byte data[12];
        data[i] = ds.read();
            Serial.print(data[i], HEX);

        Kommentar


          #5
          Hallo

          Genau das mache ich hier:
          https://knx-user-forum.de/openhab/37...rchlaufen.html
          Schau dir mal den Beitrag #5 an.

          Das wird wohl gehen wenn Du 2 Grup Items anlegst.
          Die erste Gruppe mit den Modbus-Items und die zweite mit den openhab-Items.

          Die beiden Items-Gruppen müsse nur den Gleichen Namen haben,
          wobei die zweite Gruppe in jedem Namen am Namensanfang nur einen Zusatz haben muss, der bei jedem Item gleich sein muss.

          Ich habe nur Probleme das aus der forEach Schleife nicht auf den Modbus geschrieben wird.

          Viel Spass
          Gruß NetFritz
          KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
          WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
          PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

          Kommentar


            #6
            Ich bekomme bei beiden Items dieselbe Temp angezeigt, die von modbus_Temperature_GF_Toilet.
            Code:
            /* Indoor Temperatures */
            Group   visual_modbus
            Number Temperature_GF_Toilet 		"Temperature [%.1f °C]"	<temperature>	(Temperature, GF_Toilet, visual_modbus)
            Number Temperature_GF_Corridor 		"Temperature [%.1f °C]"	<temperature>	(Temperature, GF_Corridor, visual_modbus)
            
            // Modbus
            Group   modbus_
            Number modbus_Temperature_GF_Corridor"Temperature[%d °C]"	(modbus_)   {modbus="slave2:1"}	
            Number modbus_Temperature_GF_Toilet "Temperature [%d °C]"   	(modbus_)	{modbus="slave3:1"}
            Code:
            rule "knx_to_modccbus"
            when      
            System started  or
             Time cron "0/1 * * * * ?"
            then
              modbus_?.members.forEach[element1|
                 values = (element1.state as DecimalType).floatValue /10
                 visual_modbus?.members.forEach[element2|
                    if(element2.name.toString == "modbus_" + element1.name.toString){
                      //  postUpdate(element1,values) // geht nicht 
                      //  sendCommand(element2, 40)   // geht nicht
               
                    }
                sendCommand(element2, values)
                ]
              ]
            
            end

            Code:
            07:36:50.786 INFO  runtime.busevents[:26] - Light_GF_Corridor_Ceiling state updated to ON
            07:36:51.840 INFO  runtime.busevents[:26] - Light_GF_Corridor_Wardrobe state updated to OFF
            07:36:51.841 INFO  runtime.busevents[:26] - modbus_Temperature_GF_Corridor state updated to 267
            07:36:52.395 INFO  runtime.busevents[:26] - modbus_Temperature_GF_Toilet state updated to 218

            Kommentar


              #7
              Hallo

              "sendCommand(element2, values)" muss in der if Abfrage stehen.

              Füge mal gleich nach der if-Abfrage ein logInfo ein, so wie hier.
              Code:
              logInfo("FILE", "nach if vergleich  values= " + values + " element2=  " + element2.name.toString + "  element1= " + "modbus" + element1.name.toString)
              ewtl. logInfo auch vor der if-Abfrage eifügen.

              Gruß NetFritz
              KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
              WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
              PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

              Kommentar


                #8
                Hallo
                Füge mal in deinem Rules als erstes die import und die var ein.
                Code:
                import org.[URL="http://redaktion.knx-user-forum.de/lexikon/openhab/"]openhab[/URL].core.library.types.* 
                [URL="http://redaktion.knx-user-forum.de/lexikon/import/"]import[/URL] org.[URL="http://redaktion.knx-user-forum.de/lexikon/openhab/"]openhab[/URL].core.persistence.* 
                [URL="http://redaktion.knx-user-forum.de/lexikon/import/"]import[/URL] org.[URL="http://redaktion.knx-user-forum.de/lexikon/openhab/"]openhab[/URL].model.script.actions.* 
                var Number values = 0
                Gruß NetFritz
                KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
                WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
                PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

                Kommentar


                  #9
                  Jetzt zeigts richtig an:
                  Code:
                  rule "knx_to_modccbus"
                  when      
                  System started  or
                   Time cron "0/1 * * * * ?"
                  then
                    modbus_?.members.forEach[element1|
                       values = (element1.state as DecimalType).floatValue /10
                       visual_modbus?.members.forEach[element2|
                       	
                          if(element1.name.toString == "modbus_" + element2.name.toString){
                       //sendCommand(element2, values) FUNKTIONIERT AUCH
                      
                      postUpdate(element2, values)
                        	logInfo("FILE", "nach if vergleich  values= " + values + " element2=  " + element2.name.toString + "  element1= " + "modbus" + element1.name.toString)
                          }
                           
                     
                      ]
                    ]
                  
                  end
                  Hier muss man element1 mit element2 tauschen.
                  Das logInfo muss ebenfals in die if Abfrage.
                  Code:
                   if(element1.name.toString == "modbus_" + element2.name.toString){

                  Hier das Log
                  Code:
                  Last request: 02 03 00 00 00 02 c4 38
                  Error reading response
                  execute try 1 error: I/O exception - failed to read
                  18:30:28.817 INFO  runtime.busevents[:26] - Light_GF_Corridor_Wardrobe state updated to OFF
                  18:30:28.817 INFO  runtime.busevents[:26] - modbus_Temperature_GF_Corridor state updated to 256
                  18:30:29.002 INFO  org.openhab.model.script.FILE[:53] - nach if vergleich  values= 25.6 element2=  Temperature_GF_Corridor  element1= modbusmodbus_Temperature_GF_Corridor
                  18:30:29.002 INFO  runtime.busevents[:22] - Temperature_GF_Corridor received command 25.6
                  18:30:29.003 INFO  org.openhab.model.script.FILE[:53] - nach if vergleich  values= 21.6 element2=  Temperature_GF_Toilet  element1= modbusmodbus_Temperature_GF_Toilet
                  18:30:29.003 INFO  runtime.busevents[:22] - Temperature_GF_Toilet received command 21.6
                  Last request: 03 03 00 00 00 02 c5 e9
                  Error reading response

                  Kommentar


                    #10
                    Hallo
                    Hier muss man element1 mit element2 tauschen.
                    Das logInfo muss ebenfals in die if Abfrage.
                    Dann muss Du das auch in der logInfo tauschen.

                    Schön wenn es läuft.

                    Gruß NetFritz
                    KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
                    WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
                    PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

                    Kommentar


                      #11
                      LOGINFO brauch ich nicht, auskommentiert.


                      Sagen dir evtl die Fehlermeldungen was? "Error reading response"

                      Kommentar


                        #12
                        Hallo
                        Nein
                        Kommen die vom Modbus?
                        Gruß NetFritz
                        KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
                        WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
                        PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

                        Kommentar


                          #13
                          Ja die sind vom Modbus, es wird mit Arduino gesendet.

                          Kommentar

                          Lädt...
                          X