Mihin tekoälyä voisi käyttää?

borg

administi
Ylläpitäjä
Tähän viestiketjuun voisi laittaa esimerkkejä, mitä tekoälyllä voi teettää.

Tässä muuan kokeilu:

IMG_2353.webp


IMG_2354.webp
 
Jos myös keskustelu on luvallista, niin tuossa myös esimerkki siitä, ettei vastaus ole välttämättä oikein.
Tämä on tärkeä huomio.

Toissapäivänä teetin gpt5:lla Google Sheets-taulukon tilitapahtumista, jotka oli saatavissa vain kuvakaappauksina pankin verkkopalvelusta. Tiliotteita ei ollut käytettävissä. Aikaväli vuosi 2025 syyskuun puoliväliin saakka.

Taulukko oli 98% oikein, mutta siitä puuttui kolme panoa tilille. Lisäksi kuvasta tunnistus oli tulkinnut yhden päivämäärän pieleen, seiska ja ykkönen olivat menneet sekaisin.

Valmis taulukko kuitenkin helpotti työtä huomattavasti ja puutteet / virheet oli helppo korjata.
 
Tekoälyä ei saa käyttää luovaan työhön, sanon minä. Se tappaa luovuuden!
Yksinkertaisin sovellushan oli kai alkuun laskukone, joten nykyinen sukupolvi ei osaa edes päässälaskua. Kun viikkorahakin maksetaan lapsille höylättävällä kortilla, itse maksoin raha rahana aina niin pitkään kuin ylipäätänsä maksoin. Oppivat edes laskemaan kun sillä 20€ setelillä maksoivat 1.30€ karkkipussin paljonko pitää kaupan antaa vastarahaa takaisin.

Omassa työssäni rakenne suunnittelu on tekoälyn puolesta mennyt perseeseen. se ei älyä ennakoida mahdollisia rakenteiden ikääntymisen mukanaan tuomia muutoksia eikä korjausrakentamisen satojenvuosien aikaisia työtapoja. Kirjailija säveltäjä kuvataitelija ei ole taiteilija jos käyttää tekoälyä.
 
Tuo kilpitekstin lukeminen olikin erinomainen esimerkki. Teetin tarkemman tulkinnan, mutta vaikka siinä ocr kesti minuutteja, niin varmaa vastausta ei saatu, ainoastaan arvauksia. Vielä ei olla niin pitkällä kuin alkuperäisessä Blade Runnerissa, jossa zoomailemalla löytyi kaikenlaista.
 
Minä en ainakaan ymmärrä mitä ylemmän kilven teksti tarkoittaa. Vaan kaipa se riittää kun huoitomiehet ymmärtää. :mitenlie:

Miten mahtaa sujua kytkentäkaavioiden lukeminen kuvasta?
Osaako tekoäly vastata sanallisesti kytkentää koskeviin kysymyksiin?
 
Minä en ainakaan ymmärrä mitä ylemmän kilven teksti tarkoittaa. Vaan kaipa se riittää kun huoitomiehet ymmärtää. :mitenlie:

Miten mahtaa sujua kytkentäkaavioiden lukeminen kuvasta?
Osaako tekoäly vastata sanallisesti kytkentää koskeviin kysymyksiin?
Oon joskus jotain FET-kytkentää kysynyt kuvan kanssa ChatGPT:ltä ja kyllä se siitä osasi kertoa mistä on kysy ja mitä signaaleita menee.
 
Keinoäly on ensinnäki kova welho hakemaan verkosta tietoa, hakukoneet kun tuntuu olevan nykyään mainoskoneita ja hakevat ihan omiaan.

Toisekseen pienet elämää helpottavat bulkki ohjelmat ainakin onnistuu, esimerkkinä vaikka KML muotonen exportti karttaruutujen näyttö sivustolta, joka on python koodilla muokattu GPX muotoon, kuvaten vain halutusti reunat ja käymättömät sisäosat.

1758097704184.webp


Manuaalin lukemisessa kanssa ihan ehdoton, eli ladataan keinoälylle vaikkapa se 600 sivun manuaali ja kysytään vaan halutut tiedot mitä ollaan vailla.
 
Minä otin ChatGPT.n plusversion.
Oon homeassistanttiin luonu muutaman illan koodia sähköauton lataukseen pörssisähköohjauksella ja samalla myös kiinteistön kuormanvalvontaa tähän liittyen.

Tähän on tultu:

Koodi:
# ----------------- Perusjutut -----------------
default_config:

frontend:
  themes: !include_dir_merge_named themes

automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml

http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 127.0.0.1

# ----------------- Parametrit -----------------
input_number:
  ev_charging_efficiency:
    name: EV charging efficiency
    min: 0.5
    max: 1.0
    step: 0.01
    unit_of_measurement: "%"
    icon: mdi:percent
    initial: 0.9

# ----------------- Template sensorit -----------------
template:
  - sensor:
      # Vaiheiden max virta
      - name: "Max phase current"
        unique_id: max_phase_current
        unit_of_measurement: "A"
        state: >
          {% set p1 = (states('sensor.p1_meter_teho_vaiheessa_1') | float(0)) / 230 %}
          {% set p2 = (states('sensor.p1_meter_teho_vaiheessa_2') | float(0)) / 230 %}
          {% set p3 = (states('sensor.p1_meter_teho_vaiheessa_3') | float(0)) / 230 %}
          {{ [p1, p2, p3] | max | round(1) }}

      # Tarvittava latausenergia kWh (tavoite 80 %)
      - name: "EV energy needed kWh"
        unit_of_measurement: "kWh"
        state: >
          {% set soc_now = states('sensor.skoda_enyaq_varaustaso') | float(0) %}
          {% set soc_target = 80 %}
          {% set cap = 82 %}
          {% set needed_pct = (soc_target - soc_now) | max(0) %}
          {{ (cap * needed_pct / 100) | round(1) }}

      # Tarvittavat tunnit (11 kW laturi)
      - name: "EV charge hours needed h"
        unit_of_measurement: "h"
        state: >
          {% set energy = states('sensor.ev_energy_needed_kwh') | float(0) %}
          {% set power = 11 %}
          {% set eff = states('input_number.ev_charging_efficiency') | float(0.9) %}
          {% if power * eff > 0 %}
            {{ (energy / (power * eff)) | round(2) }}
          {% else %}
            0
          {% endif %}

      # Suunnitellut tunnit (lisätään 1 h bufferi, max 9 h)
      - name: "EV charge hours planned h"
        unit_of_measurement: "h"
        state: >
          {% set hours = states('sensor.ev_charge_hours_needed_h') | float(0) %}
          {% set planned = (hours + 1) | round(0, 'ceil') %}
          {{ [planned, 9] | min }}

      # Debug-sensori (miksi ei lataa)
      - name: "EV lataus debug"
        unique_id: ev_lataus_debug
        state: >
          {% set planner = is_state('binary_sensor.ev_lataus_planner_low_cost', 'on') %}
          {% set phase1 = (states('sensor.p1_meter_teho_vaiheessa_1')|float(0) / 230) %}
          {% set phase2 = (states('sensor.p1_meter_teho_vaiheessa_2')|float(0) / 230) %}
          {% set phase3 = (states('sensor.p1_meter_teho_vaiheessa_3')|float(0) / 230) %}
          {% set add = 11000 / 3 / 230 %}
          {% set p1_future = phase1 + add %}
          {% set p2_future = phase2 + add %}
          {% set p3_future = phase3 + add %}
          {% if not planner %}
            Ei halvassa tunnissa (planner off)
          {% elif p1_future >= 23 %}
            Vaihe 1 kuorma liian suuri ({{ p1_future|round(1) }} A)
          {% elif p2_future >= 23 %}
            Vaihe 2 kuorma liian suuri ({{ p2_future|round(1) }} A)
          {% elif p3_future >= 23 %}
            Vaihe 3 kuorma liian suuri ({{ p3_future|round(1) }} A)
          {% else %}
            Kaikki kunnossa → lataus sallittu
          {% endif %}

  - binary_sensor:
      # Vaihekohtainen tarkistus (käynnistys sallitaan jos ennustettu kuorma < 23 A)
      - name: "EV safe to start (per phase)"
        unique_id: ev_safe_to_start_per_phase
        state: >
          {% set limit = 23 %}
          {% set add = 11000 / 3 / 230 %}   {# ~16 A lisäkuorma per vaihe #}
          {% set p1 = (states('sensor.p1_meter_teho_vaiheessa_1')|float(0) / 230) + add %}
          {% set p2 = (states('sensor.p1_meter_teho_vaiheessa_2')|float(0) / 230) + add %}
          {% set p3 = (states('sensor.p1_meter_teho_vaiheessa_3')|float(0) / 230) + add %}
          {{ p1 < limit and p2 < limit and p3 < limit }}
        device_class: power

# ----------------- Nordpool hinnat -----------------
  - trigger:
      - platform: time_pattern
        minutes: "/30"
      - platform: homeassistant
        event: start
    action:
      - service: nordpool.get_prices_for_date
        data:
          config_entry: 01K59Q64WEACE5BNVMBV0KV53W
          date: "{{ now().date() }}"
          areas: FI
          currency: EUR
        response_variable: today_price
      - service: nordpool.get_prices_for_date
        data:
          config_entry: 01K59Q64WEACE5BNVMBV0KV53W
          date: "{{ (now().date() + timedelta(days=1)) }}"
          areas: FI
          currency: EUR
        response_variable: tomorrow_price
    sensor:
      - name: "Nordpool raw combined prices"
        unique_id: nordpool_raw_combined_prices
        state: >
          {% if not today_price %} unavailable {% else %} 0 {% endif %}
        attributes:
          prices_today: >
            {% if today_price is mapping %}
              {% set out = [] %}
              {% for p in today_price['FI'] %}
                {% set out = out + [ {'start': p.start, 'end': p.end, 'price': (p.price/1000)} ] %}
              {% endfor %}
              {{ out }}
            {% else %}
              []
            {% endif %}
          prices_tomorrow: >
            {% if tomorrow_price is mapping %}
              {% set out2 = [] %}
              {% for p in tomorrow_price['FI'] %}
                {% set out2 = out2 + [ {'start': p.start, 'end': p.end, 'price': (p.price/1000)} ] %}
              {% endfor %}
              {{ out2 }}
            {% else %}
              []
            {% endif %}

# ----------------- Halvimmat lataustunnit (21–06) -----------------
  - sensor:
      - name: "EV lataus halvimmat tunnit"
        unique_id: ev_halvimmat_tunnit
        state: >
          {% set today = state_attr('sensor.nordpool_raw_combined_prices', 'prices_today') %}
          {% set tomorrow = state_attr('sensor.nordpool_raw_combined_prices', 'prices_tomorrow') %}
          {% set data = (today + tomorrow) if today and tomorrow else today %}
          {% set need_hours = states('sensor.ev_charge_hours_planned_h') | int(0) %}
          {% if data and need_hours > 0 %}
            {% set night_hours = data
                | selectattr('start','search','T21|T22|T23|T00|T01|T02|T03|T04|T05')
                | list %}
            {% set cheap = (night_hours | sort(attribute='price'))[:need_hours] %}
            {{ cheap | map(attribute='start') | list | tojson }}
          {% else %}
            []
          {% endif %}

Ja automaatiot:

Koodi:
- alias: "EV lataus – pörssi + kuormanhallinta"
  id: ev_lataus_halvimmat_tunnit_kuorman
  description: "Lataa halvimpina tunteina, mutta huomioi vaihekohtainen virta"
  trigger:
    - platform: time_pattern
      minutes: "/1"   # tarkistus minuutin välein
  condition: []
  action:
    - variables:
        # Vaihevirrat nyt (W → A, jaetaan 230V:lla)
        phase1: "{{ states('sensor.p1_meter_teho_vaiheessa_1') | float / 230 }}"
        phase2: "{{ states('sensor.p1_meter_teho_vaiheessa_2') | float / 230 }}"
        phase3: "{{ states('sensor.p1_meter_teho_vaiheessa_3') | float / 230 }}"
        # Laturin lisäkuorma (11 kW → ~16 A per vaihe)
        charger_add: "{{ 11000 / 3 / 230 }}"
        # Ennustetut vaihevirrat jos laturi starttaa
        p1_future: "{{ phase1 + charger_add }}"
        p2_future: "{{ phase2 + charger_add }}"
        p3_future: "{{ phase3 + charger_add }}"
        # Plannerin tila (on/off)
        planner_active: "{{ is_state('binary_sensor.ev_lataus_planner_low_cost', 'on') }}"
    - choose:
        # Jos ollaan halvassa tunnissa JA jokainen vaihe jää alle 23 A
        - conditions: >
            {{ planner_active and
               p1_future | float < 23 and
               p2_future | float < 23 and
               p3_future | float < 23 }}
          sequence:
            - service: switch.turn_on
              target:
                entity_id: switch.ev_lataus
            - service: logbook.log
              data:
                name: "EV lataus"
                message: >
                  Käynnistetty (p1: {{ p1_future | round(1) }} A,
                  p2: {{ p2_future | round(1) }} A,
                  p3: {{ p3_future | round(1) }} A)
        # Jos ei olla halvassa tunnissa TAI ennuste ylittää 23 A
        - conditions: >
            {{ not planner_active or
               p1_future | float >= 23 or
               p2_future | float >= 23 or
               p3_future | float >= 23 }}
          sequence:
            - service: switch.turn_off
              target:
                entity_id: switch.ev_lataus
            - service: logbook.log
              data:
                name: "EV lataus"
                message: >
                  Keskeytetty (planner: {{ planner_active }},
                  ennuste p1: {{ p1_future | round(1) }},
                  p2: {{ p2_future | round(1) }},
                  p3: {{ p3_future | round(1) }})
  mode: single


- alias: "EV lataustarve lasketaan illalla"
  id: ev_lataus_tarve_ilta
  description: "Laskee tarvittavan energian ja tunnit ennen klo 21 ikkunaa"
  trigger:
    - platform: time
      at: "20:55:00"
  condition:
    - condition: state
      entity_id: binary_sensor.enyaq_plugged_in
      state: "on"
  action:
    - variables:
        energy: "{{ states('sensor.ev_energy_needed_kwh') }}"
        hours_needed: "{{ states('sensor.ev_charge_hours_needed_h') }}"
        hours_planned: "{{ states('sensor.ev_charge_hours_planned_h') }}"
    - service: number.set_value
      target:
        entity_id: number.ev_lataus_planner_duration
      data:
        value: "{{ hours_planned }}"
    - service: logbook.log
      data:
        name: "EV Lataus"
        message: >
          Illan laskenta: tarvitaan {{ energy }} kWh ≈ {{ hours_needed }} h,
          bufferilla suunniteltu {{ hours_planned }} h.
  mode: single

edit: Muokattu koodiksi nuo pätkät...
 
Viimeksi muokattu:
Ohjelmoinnissa tekoäly on verraton apuväline, etenkin itseni kaltaiselle koodiongelmaiselle. Huomasin jo 80-luvulla, että kielen syntaksi ei tartu mieleen, vaan pitää aina uudelleen tarkistaa ihan yksinkertaisetkin perusjutut.

ChatGPT:llä on tehty mobiilimullinsilmät tälle foorumille (suosittelen):

Viesti ketjussa '⚜️ UUDET Konekansa Plus Pack-ominaisuudet ⚜️'
https://konekansa.net/threads/⚜️-uudet-konekansa-plus-pack-ominaisuudet-⚜️.64329/post-977087

Myöskin Pumpauttimen Arduino-koodaus:

Viesti ketjussa 'Rakennamme kesävesitornin ja Pumpauttimen'
https://konekansa.net/threads/rakennamme-kesävesitornin-ja-pumpauttimen.65720/post-1023536

Paljon apua tekoälystä on myös tiedonhaussa, kun haluaa tutustua aivan uusiin asioihin. Edellä mainittu pitkien ohjetiedostojen läpi kahlaaminen ja vain olennaisten asioiden poimiminen on erittäin kätevää.

Hallusinoinnin määrä on ollut koko ajan vähenemään päin. Enää chatGPT:kään ei satuile niin paljon kuin ennen. Tähän piirteeseen kannattaa kuitenkin varautua ja tiedostaa sen mahdollisuus. Ei kannata vaatia vastauksia kysymyksiin, joihin niitä ei välttämättä löydy. Kannattaa aina kysellä lähteiden perään ja tarkistaa, että ne ovat todella olemassa.
 
Ohjelmoinnissa tekoäly on verraton apuväline, etenkin itseni kaltaiselle koodiongelmaiselle. Huomasin jo 80-luvulla, että kielen syntaksi ei tartu mieleen, vaan pitää aina uudelleen tarkistaa ihan yksinkertaisetkin perusjutut.

ChatGPT:llä on tehty mobiilimullinsilmät tälle foorumille (suosittelen):

Viesti ketjussa '⚜️ UUDET Konekansa Plus Pack-ominaisuudet ⚜️'
https://konekansa.net/threads/⚜️-uudet-konekansa-plus-pack-ominaisuudet-⚜️.64329/post-977087

Myöskin Pumpauttimen Arduino-koodaus:

Viesti ketjussa 'Rakennamme kesävesitornin ja Pumpauttimen'
https://konekansa.net/threads/rakennamme-kesävesitornin-ja-pumpauttimen.65720/post-1023536

Paljon apua tekoälystä on myös tiedonhaussa, kun haluaa tutustua aivan uusiin asioihin. Edellä mainittu pitkien ohjetiedostojen läpi kahlaaminen ja vain olennaisten asioiden poimiminen on erittäin kätevää.

Hallusinoinnin määrä on ollut koko ajan vähenemään päin. Enää chatGPT:kään ei satuile niin paljon kuin ennen. Tähän piirteeseen kannattaa kuitenkin varautua ja tiedostaa sen mahdollisuus. Ei kannata vaatia vastauksia kysymyksiin, joihin niitä ei välttämättä löydy. Kannattaa aina kysellä lähteiden perään ja tarkistaa, että ne ovat todella olemassa.
Tekee tuokin perkele virheitä, mutta kun sille laittaa kuvakaappauksen tai selostuksen virheestä niin se pyrkii ratkaisemaan asian toisella tapaa..

Tekoälyä pitää osata komentaa oikein.

Ja sille on hyvä vittuilla ku se ei suutu!

1758107875664.webp
 
Toi sätkeepee menee ihan himmeen hitaaksi kun juttuketju pitenee ja paljon tulee juttua. se saattaa miettiä jotain yksinkertasta juttua 2 minuuttia.
 
Saattaa olla harkittu ominaisuus. Ehkäpä kuormaa koetetaan tasata niin, että aloitettavat keskustelut ovat etusijalla ja pidemmät putoavat prioriteetissa alemmaksi. Näin ei päästä syyttämään, ettei äly vastaa.
 

Luo tili tai kirjaudu sisään kommentoidaksesi

Sinun täytyy olla jäsen voidaksesi jättää kommentin.

Luo käyttäjätili

Liity Konekansalaiseksi. Se on helppoa ja ilmaista! Rekisteröityneenä et näe mainoksia, voit käyttää hakua, näet alueita, joita nyt ovat piilossa...jne.

Kirjaudu sisään

Oletko jo Konekansan jäsen? Kirjaudu sisään tästä.

Takaisin
Ylös